Qt-对话框使用总结

server/2024/12/20 3:09:50/

参考文章链接:
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/server/151600.html

相关文章

配置flutter 解决andriod studio报错 no device selected

flutter配置好后 明明下载好了模拟器 但是在andriod studio 找不到设备 显示no devices 这个时候需要我们配置一下flutter关联的android sdk的路径和文件夹 就可以解决了 flutter config --android-sdk 自己android studio的路径 这样配置就可以解决了~

C语言学习day23:WriteProcessMemory函数/游戏内存数据修改工具开发

简言&#xff1a; 上一章我们说了获取应用进程的某数据&#xff08;data&#xff09;&#xff0c;这一章我们就说说修改内存地址的数据。想要修改内存&#xff0c;那么就需要我们另一个WinAPI函数&#xff1a;WriteProcessMemory()函数。 WriteProcessMemory()函数 函数原型…

【Docker】Docker安装MongoDB最新版并连接使用附加docker常用命令

前言 确保centos7已经安装docker&#xff0c;没安装docker的可以百度自行安装 一、docker安装mongodb步骤 1、docker拉取mongo镜像 docker pull mongo:latest2、查看本地镜像命令 #查看镜像命令 docker images#查看正在运行的容器 docker ps#查看全部的容器 docker ps -a3…

【NLP】第六章:位置编码Positional Encoding

六、位置编码Positional Encoding &#xff08;一&#xff09;为什么需要位置编码器&#xff1f; 前面我们花了大幅的笔墨、详细的描述了embedding层和注意力模块的计算流程&#xff0c;可以看出attention模块确实是学习了样本于样本之间的关系。每个样本都计算了它和所有样本…

WPF+MVVM案例实战与特效(四十一)-WPF文本到几何路径转换的艺术:轻松实现自定义字体路径生成

文章目录 1、引言2、应用场景3、案例实现1、代码实现2、字体路径应用3、运行效果4、总结1、引言 在 WPF 开发中,将文本转换为几何路径(Geometry)是一个强大但鲜为人知的功能。它不仅允许我们创建复杂的图形效果,还能让我们对文本进行更精细的控制和定制。本文将深入探讨如…

Message Processing With Spring Integration高级应用:自定义消息通道与端点

一、Spring Integration 简介 Spring Integration 是 Spring 框架的扩展&#xff0c;支持企业集成模式&#xff08;EIP&#xff09;&#xff0c;提供轻量级的消息处理功能&#xff0c;帮助开发者构建可维护、可测试的企业集成解决方案。 核心目标&#xff1a; 提供简单的模型…

「iOS」通过CoreLocation Framework深入了解MVC架构

「iOS」通过CoreLocation Framework重新了解多界面传值以及MVC架构 文章目录 「iOS」通过CoreLocation Framework重新了解多界面传值以及MVC架构前言CoreLocation了解根据需求建模设计属性方法设计协议传值Block传值KVONotification通知方式 总结参考文章 前言 在这个学期的前…

ChatGPT推出视频通话及屏幕理解功能,近屿智能邀您共探AI前沿技术

北京时间12月13日凌晨&#xff0c;OpenAI在第六天直播活动中宣布为 ChatGPT 的高级语音模式带来视频输入和屏幕理解功能&#xff0c;同时&#xff0c;为了迎接即将到来的圣诞节&#xff0c;OpenAI还限时推出了充满节日氛围的圣诞老人模式。 直播一开场&#xff0c;几位团队成员…