当前位置: 首页 > article >正文

Qt——Qt中的标准对话框

1.消息对话框是应用程序中最常见的界面元素消息对话框主要用于为用户提示重要信息强制用户进行操作选择2.文件对话框Open Mode——应用程序中需要用户打开一个外部的文件Save Mode——应用程序中需要将当前内容存储在用户指定的外部文件中Widget.h#ifndef WIDGET_H #define WIDGET_H #include QWidget #include QPushButton class Widget : public QWidget { Q_OBJECT private: QPushButton SimpleMsgBtn; QPushButton CustomMsgBtn; QPushButton OpenFileBtn; QPushButton SaveFileBtn; private slots: void SimpleMsgBtn_Clicked(); void CustomMsgBtn_Clicked(); void OpenFileBtn_Clicked(); void SaveFileBtn_Clicked(); public: Widget(QWidget *parent 0); ~Widget(); }; #endif // WIDGET_HWidget.cpp#include Widget.h #include QDebug #include QMessageBox #include QFileDialog Widget::Widget(QWidget *parent) : QWidget(parent), SimpleMsgBtn(this), CustomMsgBtn(this), OpenFileBtn(this), SaveFileBtn(this) { SimpleMsgBtn.setText(Simple Message Dialog); SimpleMsgBtn.move(20, 20); SimpleMsgBtn.resize(160, 30); CustomMsgBtn.setText(Custom Message Dialog); CustomMsgBtn.move(20, 70); CustomMsgBtn.resize(160, 30); OpenFileBtn.setText(Open File Dialog); OpenFileBtn.move(20, 120); OpenFileBtn.resize(160, 30); SaveFileBtn.setText(Save File Dialog); SaveFileBtn.move(20, 170); SaveFileBtn.resize(160, 30); resize(200, 220); //把窗口固定成 宽 200 × 高 220可以拉伸 setFixedSize(200, 220); //把窗口固定成 宽 200 × 高 220,不可拉伸 connect(SimpleMsgBtn, SIGNAL(clicked()), this, SLOT(SimpleMsgBtn_Clicked())); connect(CustomMsgBtn, SIGNAL(clicked()), this, SLOT(CustomMsgBtn_Clicked())); connect(OpenFileBtn, SIGNAL(clicked()), this, SLOT(OpenFileBtn_Clicked())); connect(SaveFileBtn, SIGNAL(clicked()), this, SLOT(SaveFileBtn_Clicked())); } void Widget::SimpleMsgBtn_Clicked() { QMessageBox msg(this); msg.setText(message dialog); msg.exec(); } void Widget::CustomMsgBtn_Clicked() { QMessageBox msg(this); msg.setWindowTitle(Window Title); msg.setText(custom dialog); msg.setIcon(QMessageBox::Information); msg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel | QMessageBox::YesToAll); if( msg.exec() QMessageBox::Ok) { qDebug() Ok; } } void Widget::OpenFileBtn_Clicked() { QFileDialog dlg(this); dlg.setAcceptMode(QFileDialog::AcceptOpen); dlg.setNameFilter(Text(*.txt)); //只显示 .txt 文本文件过滤掉其他所有类型文件 dlg.setFileMode(QFileDialog::ExistingFile); if(dlg.exec() QFileDialog::Accepted ) //只有点击 “打开” 按钮条件才成立点击取消按钮则不执行内部代码 { QStringList fs dlg.selectedFiles(); //获取你选中的文件路径列表 for(int i0; ifs.count(); i) { qDebug() fs[i]; } } } void Widget::SaveFileBtn_Clicked() { QFileDialog dlg(this); dlg.setAcceptMode(QFileDialog::AcceptSave); dlg.setNameFilter(Text(*.txt)); //只显示 .txt 文本文件过滤掉其他所有类型文件 if(dlg.exec() QFileDialog::Accepted ) //只有点击 “打开” 按钮条件才成立点击取消按钮则不执行内部代码 { QStringList fs dlg.selectedFiles(); //获取你选中的文件路径列表 for(int i0; ifs.count(); i) { qDebug() fs[i]; } } } Widget::~Widget() { }3.颜色对话框——QColoeDialog类QColor类用于在程序中表示颜色的概念QColor类同时支持多种颜色表示方式RGB以红、绿、蓝为基准的三色模型HSV以色调、饱和度、明度为基准的六角锥体模型CMYK以天蓝、品红、黄色、黑为基准的全彩印刷色彩模型4.输入对话框——QInputDialog类用于临时进行数据输入的场合输入对话框的输入模式QInputDialog::TextInput——输入文本字符串QInputDialog::IntInput——输入整型数QInputDialog::DoubleInput——输入浮点数Widget.h#ifndef WIDGET_H #define WIDGET_H #include QWidget #include QPushButton class Widget : public QWidget { Q_OBJECT private: QPushButton ColorDialogBtn; QPushButton InputDialogBtn; private slots: void ColorDialogBtn_Clicked(); void InputDialogBtn_Clicked(); public: Widget(QWidget *parent 0); ~Widget(); }; #endif // WIDGET_HWidget.cpp#include Widget.h #include QDebug #include QColorDialog #include QInputDialog #include QColor Widget::Widget(QWidget *parent) : QWidget(parent), ColorDialogBtn(this), InputDialogBtn(this) { ColorDialogBtn.setText(Color Dialog); ColorDialogBtn.move(20, 20); ColorDialogBtn.resize(160, 30); InputDialogBtn.setText(Input Dialog); InputDialogBtn.move(20, 70); InputDialogBtn.resize(160, 30); resize(200, 220); //把窗口固定成 宽 200 × 高 220可以拉伸 setFixedSize(200, 220); //把窗口固定成 宽 200 × 高 220,不可拉伸 connect(ColorDialogBtn, SIGNAL(clicked()), this, SLOT(ColorDialogBtn_Clicked())); connect(InputDialogBtn, SIGNAL(clicked()), this, SLOT(InputDialogBtn_Clicked())); } void Widget::ColorDialogBtn_Clicked() { QColorDialog dlg(this); dlg.setWindowTitle(Color Editor); // dlg.setCurrentColor(Qt::blue); //初始颜色 dlg.setCurrentColor(QColor(100, 111, 222)); //直接指定颜色的RGB if( dlg.exec() QColorDialog::Accepted ) { //ARGB 透明度 颜色 RGB 颜色 QColor color dlg.selectedColor(); qDebug() dlg.selectedColor(); qDebug() color; //打印RGB三原色 qDebug() color.red(); qDebug() color.green(); qDebug() color.blue(); //打印色相、饱和度、明度 qDebug() color.hue(); qDebug() color.saturation(); qDebug() color.value(); } } void Widget::InputDialogBtn_Clicked() { QInputDialog dlg(this); dlg.setWindowTitle(Input Test); dlg.setLabelText(please input an integer: ); dlg.setInputMode(QInputDialog::IntInput); //设置输入整型数的范围 dlg.setIntMaximum(10); dlg.setIntMinimum(0); if( dlg.exec() QInputDialog::Accepted) { qDebug() dlg.intValue(); } } Widget::~Widget() { }5.字体对话框——QFontDialog类用于提供选择字体的对话框部件6.进度对话框——QProgressDialog类用于显示进度信息用于需要用户等待的场合7.打印对话框——QPrintDialog类用于设置打印相关的参数信息Qt中的QPrint类是打印设备及其参数的封装QPrinter类封装了系统中打印设备的驱动接口QPrinter以相同方式使用系统中的打印设备void Widget::FontDialogBtn_Clicked() { QFontDialog dlg(this); dlg.setWindowTitle(Font Dialog Test); dlg.setCurrentFont(QFont(Courier New, 10, QFont::Bold)); if( dlg.exec() QFontDialog::Accepted ) { qDebug() dlg.selectedFont(); } } void Widget::ProgressDialogBtn_Clicked() { QProgressDialog dlg(this); dlg.setWindowTitle(Updating); dlg.setLabelText(Downloading from server...); dlg.setMinimum(0); dlg.setMaximum(100); dlg.setValue(35); //设置当前进度 dlg.exec(); } void Widget::PrintDialogBtn_Clicked() { QPrintDialog dlg(this); dlg.setWindowTitle(Print Dialog Test); if( dlg.exec() QPrintDialog::Accepted ) { QPrinter* p dlg.printer(); //从对话框里获取打印机对象指针 p QTextDocument td; //创建一个文本文档对象 td.setPlainText(Printer object test!); p-setOutputFileName(D:\\test6.pdf); //把打印机指向 “输出成 PDF 文件” td.print(p); //让文本文档 td 通过打印机 p 打印出去 } }小结Qt中标准对话框的设计模式GUI界面部件产生数据对象业务逻辑中的其他对象使用数据对象GUI界面与业务逻辑通过数据对象连接

相关文章:

Qt——Qt中的标准对话框

1.消息对话框是应用程序中最常见的界面元素消息对话框主要用于:为用户提示重要信息,强制用户进行操作选择2.文件对话框Open Mode——应用程序中需要用户打开一个外部的文件Save Mode——应用程序中需要将当前内容存储在用户指定的外部文件中Widget.h#ifn…...

Web Components 实战:构建原生可复用组件

摘要:在 React、Vue 等框架百花齐放的今天,Web Components 作为浏览器原生支持的组件化方案,正悄然回归。本文将带你从零开始,使用原生技术栈构建可复用的 Web Components,让你的组件真正的"一次编写,…...

忍者像素绘卷开源可部署:支持国产统信UOS+海光DCU异构部署

忍者像素绘卷开源可部署:支持国产统信UOS海光DCU异构部署 1. 项目概述 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站,专为复古像素艺术创作而设计。这款工具将传统漫画创作与现代AI技术相结合,创造出独特的16-Bit复古游戏…...

nlp_structbert_sentence-similarity_chinese-large实战案例:在线教育题库题目语义查重系统

nlp_structbert_sentence-similarity_chinese-large实战案例:在线教育题库题目语义查重系统 1. 项目背景与需求 在线教育平台每天都会产生大量的题目内容,老师们经常遇到这样的困扰:新出的题目是不是和题库中已有的题目重复了?传…...

MGeo中文地址解析模型参数详解:多模态预训练底座实战解析

MGeo中文地址解析模型参数详解:多模态预训练底座实战解析 地址信息,就像我们日常生活中的“数字门牌”,是连接线上信息与线下物理世界的关键桥梁。无论是点外卖时精准送达,还是导航时快速定位,背后都离不开对地址文本…...

开箱即用!VoxCPM-1.5-WEBUI镜像部署与Web界面使用全解析

开箱即用!VoxCPM-1.5-WEBUI镜像部署与Web界面使用全解析 1. 语音合成技术的新选择 在数字内容爆炸式增长的今天,高质量的语音合成技术正变得越来越重要。无论是视频配音、有声读物制作,还是智能客服系统,都需要自然流畅的语音输…...

用MATLAB搞定最优控制:梯度法实战教程(附完整代码)

MATLAB梯度法实战:最优控制问题的高效数值解法 引言:最优控制问题的工程挑战 在工程实践中,我们经常遇到需要动态系统在满足特定约束条件下达到最优性能的问题。这类问题在航空航天、机器人控制、工业过程优化等领域尤为常见。传统解析解法在…...

别只盯着算法!手把手教你为STM32MP157人脸识别项目搭建Qt图形界面

从算法到产品:STM32MP157人脸识别项目的Qt界面实战指南 当你在STM32MP157上成功跑通OpenCV人脸识别算法后,是否发现这离真正的产品化还有段距离?一个没有友好界面的嵌入式AI项目,就像没有方向盘的跑车——性能再强也难以驾驭。本文…...

【图像大模型】Stable Video Diffusion实战:从零构建高效视频生成系统的关键技术与优化策略

1. Stable Video Diffusion核心架构解析 第一次接触Stable Video Diffusion(SVD)时,我被它生成的流畅视频效果震撼到了。这个基于时空扩散模型的视频生成系统,本质上是一个能理解时间维度的智能画家。想象一下,你给AI一…...

MATLAB解析pcap文件:从抓包到信号处理的完整流程

1. 为什么需要用MATLAB处理pcap文件 在雷达信号处理和无线通信领域,pcap文件是最常见的数据存储格式之一。这种文件格式能够完整记录网络接口捕获到的原始数据包,包括时间戳、协议类型和载荷数据等关键信息。对于工程师来说,直接从pcap文件中…...

BG3ModManager完全指南:5步精通博德之门3模组管理

BG3ModManager完全指南:5步精通博德之门3模组管理 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager BG3ModManager是《博德之门3》社区最受…...

BIThesis 3.7.0:北京理工大学研究生学位论文模板的完整专业解决方案

BIThesis 3.7.0:北京理工大学研究生学位论文模板的完整专业解决方案 【免费下载链接】BIThesis 📖 北京理工大学非官方 LaTeX 模板集合,包含本科、研究生毕业设计模板及更多。🎉 (更多文档请访问 wiki 和 release 中的…...

全志T113-S3录音失真排查实录:从示波器到Cooledit Pro,我们踩了这些坑

全志T113-S3录音失真排查实战:从示波器到频谱分析的完整避坑指南 当我们在全志T113-S3平台上进行音频开发时,最令人头疼的问题莫过于录音失真。那种刺耳的尖锐声音不仅影响用户体验,更让开发者陷入漫长的调试泥潭。本文将完整还原我们团队从发…...

鸿蒙ArkTS实战:轻松驾驭multipart/form-data网络请求

1. 理解multipart/form-data的本质 在开发过程中遇到需要同时上传文本和文件的需求时,multipart/form-data这个名词就会频繁出现。我第一次接触这个概念是在做一个用户反馈功能的时候,需要让用户既能输入文字描述,又能上传截图。当时我就在想…...

为什么选择顶级开源跨平台IPTV播放器:完整实战指南

为什么选择顶级开源跨平台IPTV播放器:完整实战指南 【免费下载链接】iptvnator :tv: Cross-platform IPTV player application with multiple features, such as support of m3u and m3u8 playlists, favorites, TV guide, TV archive/catchup and more. 项目地址…...

Z-Image-GGUF提示词社区构建:借鉴开源项目运营中文社区

Z-Image-GGUF提示词社区构建:借鉴开源项目运营中文社区 最近在玩Z-Image-GGUF这个图像生成模型,发现效果确实不错,但有个问题挺让人头疼的——提示词怎么写才能出好图?网上搜到的教程要么太零散,要么就是英文的&#…...

ESP32S3 固件工程化部署指南:从多文件烧录到一体化镜像生成

1. 为什么需要工程化部署ESP32S3固件 第一次接触ESP32S3开发板时,我和很多新手一样踩过这样的坑:编译完代码直接烧录生成的.bin文件,结果设备死活不工作。后来才发现,原来ESP32S3需要同时烧录bootloader、分区表和主程序三个文件才…...

Pixel Couplet Gen保姆级部署:Windows/Mac/Linux三平台兼容方案

Pixel Couplet Gen保姆级部署:Windows/Mac/Linux三平台兼容方案 1. 项目介绍 Pixel Couplet Gen是一款基于ModelScope大模型驱动的创意春联生成工具。它将中国传统春节文化与复古游戏美学完美融合,通过AI技术生成独特的像素风格春联。 与传统春联生成…...

PDF与OFD电子发票解析技术实战:从格式转换到精准识别

1. 电子发票解析的现状与挑战 财务数字化转型浪潮下,电子发票已成为企业日常经营的重要凭证。但实际业务中,财务人员常被PDF和OFD两种格式的电子发票处理搞得焦头烂额。我见过不少企业财务部,光是手工录入发票信息就要配备3-5人的专职团队&am…...

Win11与Ubuntu22.04 LTS双系统安装避坑指南(附分区优化建议)

1. 双系统安装前的准备工作 第一次尝试在Win11上安装Ubuntu22.04 LTS时,我犯了个低级错误——只给根目录分配了30G空间。结果安装CUDA时直接爆满,不得不重装整个系统。这个惨痛教训让我意识到,分区规划是双系统安装中最容易被忽视却最关键的一…...

终极指南:5分钟解锁Minecraft源码的完整反编译方案

终极指南:5分钟解锁Minecraft源码的完整反编译方案 【免费下载链接】DecompilerMC This repository allows you to decompile any minecraft version that was published after 19w36a without any 3rd party mappings, you just need to execute the script or the…...

ChanlunX缠论插件:3步实现股票技术分析的终极可视化方案

ChanlunX缠论插件:3步实现股票技术分析的终极可视化方案 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX ChanlunX缠论可视化插件是专为通达信用户开发的智能缠论分析工具,通过自动…...

如何高效获取Twitch游戏奖励?TwitchDropsMiner智能调度系统解析

如何高效获取Twitch游戏奖励?TwitchDropsMiner智能调度系统解析 【免费下载链接】TwitchDropsMiner An app that allows you to AFK mine timed Twitch drops, with automatic drop claiming and channel switching. 项目地址: https://gitcode.com/GitHub_Trendi…...

FanControl终极指南:5分钟实现Windows风扇智能控制与中文界面

FanControl终极指南:5分钟实现Windows风扇智能控制与中文界面 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tren…...

3步实现PCB可视化BOM管理:InteractiveHtmlBom实战指南

3步实现PCB可视化BOM管理:InteractiveHtmlBom实战指南 【免费下载链接】InteractiveHtmlBom Interactive HTML BOM generation plugin for KiCad, EasyEDA, Eagle, Fusion360 and Allegro PCB designer 项目地址: https://gitcode.com/gh_mirrors/in/InteractiveH…...

终极游戏手柄映射指南:5分钟让任何手柄玩转PC游戏

终极游戏手柄映射指南:5分钟让任何手柄玩转PC游戏 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support. 项目地址: https://gitcode.com/GitHub_Tr…...

AI艺术新体验:丹青识画系统开箱即用,为照片注入东方美学

AI艺术新体验:丹青识画系统开箱即用,为照片注入东方美学 1. 引言:科技与美学的完美邂逅 在数字时代,我们每天都会拍摄和分享大量照片,但你是否曾想过,这些影像可以拥有更深层次的文化内涵?「丹…...

WarcraftHelper 终极指南:让魔兽争霸III在现代电脑上焕发新生

WarcraftHelper 终极指南:让魔兽争霸III在现代电脑上焕发新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在现代电脑…...

AudioSeal Pixel Studio惊艳效果展示:水印嵌入前后MOS语音质量主观评测结果

AudioSeal Pixel Studio惊艳效果展示:水印嵌入前后MOS语音质量主观评测结果 1. 专业级音频水印技术揭秘 AudioSeal Pixel Studio是一款基于Meta开源的AudioSeal算法构建的音频保护工具。它能在几乎不影响音质的情况下,为音频添加隐形的数字水印&#x…...

Google 迎来「DeepSeek 时刻」:TurboQuant算法实现bit无损、×加速、×压缩、零预处理屹

从 UI 工程师到 AI 应用架构者 13 年前,我的工作是让按钮在 IE6 上对齐; 13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。 最近&#x…...