【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);
相关推荐
后台开发者Ethan25 分钟前
Python需要了解的一些知识
开发语言·人工智能·python
手把手入门1 小时前
★CentOS:MySQL数据备份
数据库·mysql·adb
常利兵1 小时前
Kotlin作用域函数全解:run/with/apply/let/also与this/it的魔法对决
android·开发语言·kotlin
幼稚园的山代王1 小时前
Kotlin-基础语法练习一
android·开发语言·kotlin
重生成为编程大王1 小时前
Java ConcurrentHashMap 深度解析
java·开发语言
SelectDB2 小时前
5000+ 中大型企业首选的 Doris,在稳定性的提升上究竟花了多大的功夫?
大数据·数据库·apache
路多辛2 小时前
Golang database/sql 包深度解析(二):连接池实现原理
数据库·sql·golang
SimonKing2 小时前
Mybatis批量插入,形式不同性能也不同
数据库·后端·程序员
tanyongxi662 小时前
C++ 特殊类设计与单例模式解析
java·开发语言·数据结构·c++·算法·单例模式
遗憾皆是温柔2 小时前
24. 什么是不可变对象,好处是什么
java·开发语言·面试·学习方法