欢迎光临
我们一直在努力

Qt的窗口(三)

Qt的窗口(三)

  • 1.模态对话框
  • 2.MessageBox
  • 2.QColorDialog
  • 3.QFileDialog
  • 4.QFontDialog
  • 5.QInputDialog

🌟🌟hello,各位读者大大们你们好呀🌟🌟 🚀🚀系列专栏:【Qt的学习】 📝📝本篇内容:模态对话框;MessageBox;QColorDialog;QFileDialog;QFontDialog;QInputDialog ⬆⬆⬆⬆上一篇:Qt的窗口(二) 💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-

1.模态对话框

在我们之前讲的对话框中,当弹出对话框时,我们也可以操作我们的父窗口,但是有的时候在一些特殊的场合中,必须要让用户作出决策。 model模态:弹出对话框的时候,此时用户无法操作父窗口,必须完成对话框内部要求的操作 非模态:弹出对话框的时候,用户可以操作父窗口 因此像我们前面写的几个代码都是非模态对话框,想要实现这种效果,只需要将我们在代码中运行对话框的show换成exec即可

2.MessageBox

之前讲了QDialog,接下来就可以讲讲它的一些扩展类,都是QDialog的子类,Qt已经给我们提供好了,Message是一个消息框,弹出信息让你做出选择 在这里插入图片描述 在这里插入图片描述 我们一点一点来解释代码 首先是创建方式,这个其实和QDialog是一样的,并且它同样也是继承QWidget的,因此也可以使用QWidget相关的属性和函数来设置标题等,setText是QMessageBox自带的,用来设置消息的 其次QMessageBox也可以设置图标和按钮,Qt也都给我们内置了 在这里插入图片描述 NoIcon:不显示任何图标 Information:信息图标(通常为蓝色 “i” 图标),用于展示一般性通知 Warning:警告图标(通常为黄色感叹号),用于提示潜在问题 Critical:严重错误图标(通常为红色叉号),用于报告严重故障 Question:疑问图标(通常为问号),用于引导用户确认操作 在这里插入图片描述 在我们的标准按钮中,我们是没有办法进行信号槽的链接的,因为按钮是QMessage自己生成的。QMessageBox使用场景更多是模态的,使用这种方法后设置后好按钮,并且使用exec,弹出模态消息框,当消息框处于弹出状态时,代码就会在exec这里阻塞,一直到消息框被关闭。当用户点击按钮后使对话框关闭,此时就能通过exec的返回值来知道我们用户点击的是哪个按钮,从而像信息槽一样执行一些对应逻辑了。 当然我们也可以使用自定义的按钮,如下,但是不常用,也不方便 在这里插入图片描述 在这里插入图片描述 其中的addButton的第二个参数,其实是设置我们的按钮所代表的属性,AcceptRole就代表接受,Ok 在这里插入图片描述 在这里插入图片描述 当只是简单的使用消息框的话,还有更简单的方式,调用QMessageBox给我们提供的静态函数 在这里插入图片描述

QMessageBox::StandardButton QMessageBox::information(
QWidget *parent, // 父窗口指针
const QString &title, // 消息框标题
const QString &text, // 消息框内容
QMessageBox::StandardButtons buttons = QMessageBox::Ok, // 显示的按钮(默认仅显示OK)
QMessageBox::StandardButton defaultButton = QMessageBox::NoButton // 默认聚焦的按钮
);

上面只展示了information一种消息类型,其他的类型就是我们前面所讲的QMessageBox给我们提供的图标他们所代表的枚举值 在这里插入图片描述

2.QColorDialog

接下来这个是颜色对话框,就是让用户选择用户,使用起来也比较简单,和我们前面的QMessageBox一样,调用一个静态函数就可以实现 在这里插入图片描述 在这里插入图片描述 Qt中的QColorDialog的功能已经内置了调色板,像我们看见的打印结果其实是用0-1这样的小数表示RGB的值了,1对应到的整数就是255,0对应到整数0。其中第一个“1”代表的是不透明度,1表示完全不透明,其余的三个数字就是RGB。 我们使用的是getColor这个函数,这个函数能够弹出一个模块颜色框(这章节讲的,只要是静态函数,都是模块属性的),用户选择颜色之后,点击确定,对话框就会关闭,而函数返回值就是用户选择的颜色值。所以说和之前QMessageBox::information是一样的道理,不必创建对话框对象,就可以直接使用。 程序的功能是基于用户选择的颜色修改窗口的背景色,可以通过QSS来设置,在代码中演示了两种编写QSS的方式,这边只需要了解,后面章节会详细说明。

3.QFileDialog

QFileDialog介绍两个函数,他们和前面讲的一样,是静态函数 QFileDialog::getSaveFileName 是 Qt 中用于弹出文件保存对话框的核心静态方法,隶属于QFileDialog类,作用是让用户可视化选择文件的保存路径 + 文件名,并返回用户确认的完整文件路径 QFileDialog::getOpenFileName 是 Qt 中弹出单文件打开对话框的核心静态方法,隶属于QFileDialog类,与getSaveFileName为姊妹方法,专门用于让用户可视化选择已存在的单个文件并返回其完整路径,是 Qt 开发中文件打开、导入功能的必备接口。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这边的打开和保存功能都是需要额外去实现的,并不是说直接一按打开和保存就真的打开和保存了,这个后续讲Qt针对文件的时候会说。

4.QFontDialog

这个对话框是用来设置字体的,使用的函数也是静态的,直接来看代码 在这里插入图片描述 ok 参数是专门用于判断用户在字体选择对话框中,最终点击的是「确定」还是「取消」按钮的核心依据,也是该方法的必传输出参数,没有它就无法准确识别用户的操作意图。像前面讲的QColorDialog和QFileDialog的核心获取方法,取消时会返回「天然的无效值」,可直接通过返回值判断用户是「确定」还是「取消」,因此无需额外的ok参数;而QFontDialog::getFont()没有这个「无效值标识」,才需要ok参数补充判断。

5.QInputDialog

QInputDialog是输入对话框,它可以输入或者设置整型,浮点型,字符串,它分别对应三个函数,也是静态的 在这里插入图片描述 在代码中使用到的QStringList可以把他当成一个字符数组,但是其实它更像C++中的list和vector的相结合,也就是双端队列deque在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述在对话框中,我们即可以直接输入也可以直接通过上下按钮进行调节,像字符串的话可以直接选择

🌸🌸Qt的窗口(三)大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

赞(0)
未经允许不得转载:171主机测评 » Qt的窗口(三)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址