Qt-对话框使用总结

news/2024/12/17 23:33:45/

参考文章链接:
Qt对话框之一:标准对话框
Qt对话框之二:模态、非模态、半模态对话框

标准对话框

颜色对话框

颜色对话框类 QColorDialog 提供了一个可以获取指定颜色的对话框部件

/***    第一种方式     ***/
//QColor color = QColorDialog::getColor(Qt::red, this, tr("颜色对话框"),QColorDialog::ShowAlphaChannel);
//qDebug() <<"color:" <<color;/***    第二种方式     ***/
QColorDialog dialog(Qt::red, this); // 创建对象
dialog.setOption(QColorDialog::ShowAlphaChannel);   // 显示 alpha 选项
dialog.exec();  // 以模态方式运行对话框
QColor color = dialog.currentColor();   // 获取颜色对话框当前颜色
qDebug() <<"color:" <<color;    // 输出颜色信息

第一种方式,使用了 QColorDialog 的静态函数 getColor() 来获取颜色,它的3个参数的作用分别是设置初始颜色、父窗口和对话框标题。第一种方式的好处是不用不用创建对象。但是如果想要更灵活地设置时,采用第二种方式,先创建对象,然后进行各项设置。两者的实现效果是等效的

文件对话框

文件对话框类 QFileDialog 提供了一个允许用户选择文件或文件夹的对话框

QString fileName = QFileDialog::getOpenFileName(this, tr("文件对话框"), "F:",tr("图片文件(* png * jpg)"));

这个函数的4个参数的作用分别是:指定父窗口、 设置对话框标题、指定默认打开的目录路径和设置文件类型过滤器。如果不指定文件过滤器,默认是选择所有类型的文件
这里只选择 png 和 jpg 两种格式的图片文件(注意代码中 * png 和 * jpg 之间需要一个空格),那么在打开的文件对话框中只能显示目录下这两种格式的文件

还可以设置多个不同类别的过滤器,不同类别间使用两个分号 “;;” 隔开,例如添加文本文件类型

QString fileName = QFileDialog::getOpenFileName(this, tr("文件对话框"), "F:",tr("图片文件(* png * jpg);;文本文件(* txt)"));

前面这个程序只能选择单个文件,要同时选择多个文件,可以使用 getOpenFileNames()函数, 例如

QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("文件对话框"), "F:",tr("图片文件(* png * jpg);;文本文件(* txt)"));

除了上面的两个函数,QFileDialog 类还提供了 getSaveFileName() 函数来实现保存文件对话框和文件另存为对话框,还有 getExistingDirectory() 函数来获取一个已存在的文件夹路径

字体对话框

字体对话框 QFontDialog 类提供了一个可以选择字体的对话框部件

// ok 用于标记是否单击了 OK 按钮。然后获得选择的字体
bool ok;
QFont font = QFontDialog::getFont(&ok, this);
// 如果单击 Cancel 按钮,那么更改字体
if (ok)ui->pushButton_3->setFont(font);
elseqDebug() <<tr("没有选择字体!");

这里使用了 QFileDidog 类的 getFont() 静态函数来获取选择的字体。第一个参数是 bool 类型变量,用来存放按下的按钮状态,比如在打开的字体对话框中单击了 OK 按钮,那么这里的 ok 就为 true,从而告诉用户已经选择了字体。

输入对话框

输人对话框 QInputDialog 类用来提供一个简单方便的对话框,从而从用户那里获取一个单一的数值或字符串

bool ok;// 获取字符串
QString string = QInputDialog::getText(this, tr("输入字符串对话框"),tr("请输入用户名:"),QLineEdit::Normal, tr("admin"), &ok);
if(ok)
qDebug() <<tr("string:") <

http://www.ppmy.cn/news/1555982.html

相关文章

实时日志与发展:Elasticsearch 推出全新专用的 logsdb 索引模式

作者&#xff1a;来自 Elastic Mark Settle, George Kobar 及 Amena Siddiqi Elastic 最新发布的 logsdb 索引模式是专为日志管理优化的功能&#xff0c;旨在提升日志数据的存储效率、查询性能以及整体可用性。这个模式专注于满足现代日志处理需求&#xff0c;提供更高效的日志…

Java函数式编程【三】【Stream终止操作】【上】之【简单约简】

函数式编程可分为三个步骤&#xff1a;流的创建、流的中间操作和流的终止操作。其中流的中间操作可以有n个&#xff0c;而流的终止操作只能有一个。 函数式编程三个步骤示意图&#xff1a; 常用的终止操作 Stream的终止操作大致可分为两大类&#xff1a;简单约简的终止操作…

<数据集>输电线塔杂物识别数据集<目标检测>

数据集下载链接 &#xff1c;数据集&#xff1e;输电线塔杂物识别数据集&#xff1c;目标检测&#xff1e;https://download.csdn.net/download/qq_53332949/90141102数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;1099张 标注数量(xml文件个数)&#xff1a;1099 …

11.python文件

文章目录 Python 文件 I/O 总结1. **打印到屏幕**2. **读取键盘输入**3. **打开和关闭文件**3.1 open() 函数3.2 close() 方法 4. **文件读写操作**4.1 write() 方法4.2 read() 方法4.3 readline() 方法4.4 readlines() 方法4.5 seek() 和 tell() 方法 5. **文件重命名和删除**…

RabbitMQ全局流量控制

RabbitMQ全局流量控制 流控机制流控是对什么进行控制&#xff1f;rabbitmq进程邮箱流控机制是什么&#xff1f; 流控原理流控原理流程 流控状态显示流控对象流控机制对象主要进程各进程状态情形分析 性能提升提升队列性能方式 当消息积压时&#xff0c;消息会进入到队列深处&am…

中国计算机学会计算机视觉专委会携手合合信息举办企业交流活动,为AI安全治理打开“新思路”

近期&#xff0c;《咬文嚼字》杂志发布了2024年度十大流行语&#xff0c;“智能向善”位列其中&#xff0c;过去一年时间里&#xff0c;深度伪造、AI诈骗等话题屡次登上热搜&#xff0c;AI技术“野蛮生长”引发公众担忧。今年9月&#xff0c;全国网络安全标准化技术委员会发布了…

鸿蒙Next环境设备查询Environment用法总结

一、概述 Environment是ArkUI框架在应用程序启动时创建的单例对象&#xff0c;用于提供一系列描述应用程序运行状态的属性&#xff0c;其所有属性不可变&#xff08;应用不可写入&#xff09;且为简单类型&#xff0c;主要为AppStorage提供设备环境相关信息&#xff0c;以辅助…

APP、小程序对接聚合广告平台,有哪些广告变现策略?

开发者对接聚合广告平台&#xff0c;可以让自身流量价值最大化&#xff0c;获得更多的广告曝光机会&#xff0c;对接单一的广告联盟容易造成广告填充不足&#xff0c;收益不稳定的问题。#APP广告变现# APP开发者根据应用的生命周期、用户特征和产品定位&#xff0c;选择最适合…