【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);
相关推荐
在下不上天17 分钟前
Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复
大数据·开发语言·python
tatasix25 分钟前
MySQL UPDATE语句执行链路解析
数据库·mysql
陌小呆^O^30 分钟前
Cmakelist.txt之win-c-udp-client
c语言·开发语言·udp
南城花随雪。38 分钟前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库
儿时可乖了39 分钟前
使用 Java 操作 SQLite 数据库
java·数据库·sqlite
懒是一种态度41 分钟前
Golang 调用 mongodb 的函数
数据库·mongodb·golang
天海华兮43 分钟前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql
I_Am_Me_1 小时前
【JavaEE进阶】 JavaScript
开发语言·javascript·ecmascript
重生之我是数学王子1 小时前
QT基础 编码问题 定时器 事件 绘图事件 keyPressEvent QT5.12.3环境 C++实现
开发语言·c++·qt
Ai 编码助手1 小时前
使用php和Xunsearch提升音乐网站的歌曲搜索效果
开发语言·php