【Qt】:对话框(二)

对话框

Q提供了多种可复用的对话框类型,即Qt标准对话框。Qt标准对话框全部继承于QDialog类。常用标准对话框如下:

一.消息对话框(QMessageBox)

消息对话框是应用程序中最常用的界面元素。消息对话框主要用于为用户提示重要信息,强制用户进行选择操作。

1.自己构建

QMessageBox自己内置了一些图标和按钮,我们可以直接使用。

除了上述的一些内置按钮,也可以自定义按钮。在进行addButton操作时,第二个参数代表该按钮的角色。例如:设置AcceptRole就代表接受,之后就可以通过信号槽进行更进一步的设定。


但实际上像标准按钮,是无法使用connect进行连接的,所以我们可以通过exec函数的返回值,直接获取点击的是哪个按钮。它的返回值就是标准按钮的枚举。


2.使用静态函数构建

QMessageBox类中定义了静态成员函数,可以直接调用创建不同风格的消息对话框,其中包括:

二.颜色对话框(QDialog)

颜色对话框的功能是允许用户选择颜色。继承自QDialog类。颜色对话框如下图示:

这个类是QDialog的子类,当然可以使用exec进行显示,但更多的情况下,我们都使用它的专属方法。

  1. QColorDialog (Qwidget*parent = nullptr)//创建对象的同时设置父对象

  2. QColorDialog(const QColor &initial, QWidget *parent = nullptr)//创建对象的同时通过QColor对象设置默认颜色和父对象

  3. void setCurrentColor(const Qcolor &color)//设置当前颜色对话框

  4. QColor currentColor() const//获取当前颜色对话框

  5. QColor getColor(const QColor &initial =Qt:white, QWidget *parent= nullptr, const QString&title = QString(),QColorDialog:ColorDialogoptions options =ColorDialogOptions())//打开颜色选择对话框,并返回一个QColor对象

  6. voidopen(QObjectreceiver,constcharmember)//打开颜⾊对话框

三.文件对话框(QFileDialog)

文件对话框用于应用程序中需要打开一个外部文件或需要将当前内容存储到指定的外部文件。常用方法介绍:

1、打开文件(一次只能打开一个文件)

cpp 复制代码
QString getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), constQString &dir = QString(), const Qstring &filter =QString(), QString *selectedFilter = nullptr,QFileDialog:Options options = Options())

2、打开多个文件(一次可以打开多个文件)

cpp 复制代码
QStringList getOpenFileNames(QWidget *parent = nullptr, const QString &caption =QString(),const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr,QFileDialog::Options options = Options())

3、保存文件

cpp 复制代码
QString getSaveFileName(QWidget *parent = nullptr, const QString &caption =QString(), constQString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr,QFileDialog:Options options = Options())

注意,这里只是单纯的打开/保存文件,具体的功能实现还需要之后的代码。

四.字体对话框(QFontDialog)

Qt中提供了预定义的字体对话框类QFontDialog,⽤于提供选择字体的对话框部件。使用方法与上面的大同小异,就不再赘述了。

五.输入对话框(QInputDialog)

Qt中提供了预定义的输⼊对话框类:QInputDialog,⽤于进⾏临时数据输⼊的场合。

1、双精度浮点型输入数据对话框

cpp 复制代码
double getDouble (Qwidget *parent, const Qstring &title, const Qstring&label, doublevalue =0, double min =-2147483647, double max= 2147483647, int decimals = 1, bool *ok= nullptr, Qt::WindowFlags flags = Qt::WindowFlags());

2、整型输入数据对话框

cpp 复制代码
int getInt (QWidget*parent, const Qstring &title, const Qstring &label, int value = 0, intmin =-2147483647, int max= 2147483647, int step =1, bool *ok=nullptr, Qt:WindowFlagsflags = Qt::WindowFlags());

3、选择条目型输入数据框

cpp 复制代码
QString getltem (QWidget *parent, const Qstring &title, const Qstring &label, constQStringList &items, int current= 0, bool editable = true, bool*ok = nullptr,Qt:WindowFlags flags = Qt::WindowFlags(), Qt::lnputMethodHints inputMethodHints =Qt::lmhNone);
相关推荐
bug菌¹3 分钟前
滚雪球学Oracle[2.5讲]:数据库初始化配置
数据库·oracle·数据库初始化·初始化配置
一休哥助手10 分钟前
Redis 五种数据类型及底层数据结构详解
数据结构·数据库·redis
落落落sss14 分钟前
MybatisPlus
android·java·开发语言·spring·tomcat·rabbitmq·mybatis
翔云12345618 分钟前
MVCC(多版本并发控制)
数据库·mysql
简单.is.good31 分钟前
【测试】接口测试与接口自动化
开发语言·python
代码敲上天.35 分钟前
数据库语句优化
android·数据库·adb
Yvemil71 小时前
MQ 架构设计原理与消息中间件详解(二)
开发语言·后端·ruby
盒马盒马1 小时前
Redis:zset类型
数据库·redis
程序员是干活的1 小时前
私家车开车回家过节会发生什么事情
java·开发语言·软件构建·1024程序员节
静听山水1 小时前
mysql语句执行过程
数据库·mysql