对话框
- 一.消息对话框(QMessageBox)
- 1.自己构建
- 2.使用静态函数构建
- 二.颜色对话框(QDialog)
- 三.文件对话框(QFileDialog)
- 四.字体对话框(QFontDialog)
- 五.输入对话框(QInputDialog)
Q提供了多种可复用的对话框类型,即Qt标准对话框。Qt标准对话框全部继承于QDialog类。常用标准对话框如下:
一.消息对话框(QMessageBox)
消息对话框是应用程序中最常用的界面元素。消息对话框主要用于为用户提示重要信息,强制用户进行选择操作。
1.自己构建
QMessageBox自己内置了一些图标和按钮,我们可以直接使用。
除了上述的一些内置按钮,也可以自定义按钮。在进行addButton操作时,第二个参数代表该按钮的角色。例如:设置AcceptRole就代表接受,之后就可以通过信号槽进行更进一步的设定。
但实际上像标准按钮,是无法使用connect进行连接的,所以我们可以通过exec函数的返回值,直接获取点击的是哪个按钮。它的返回值就是标准按钮的枚举。
2.使用静态函数构建
QMessageBox类中定义了静态成员函数,可以直接调用创建不同风格的消息对话框,其中包括:
二.颜色对话框(QDialog)
颜色对话框的功能是允许用户选择颜色。继承自QDialog类。颜色对话框如下图示:
这个类是QDialog的子类,当然可以使用exec进行显示,但更多的情况下,我们都使用它的专属方法。
-
QColorDialog (Qwidget*parent = nullptr)//创建对象的同时设置父对象
-
QColorDialog(const QColor &initial, QWidget *parent = nullptr)//创建对象的同时通过QColor对象设置默认颜色和父对象
-
void setCurrentColor(const Qcolor &color)//设置当前颜色对话框
-
QColor currentColor() const//获取当前颜色对话框
-
QColor getColor(const QColor &initial =Qt:white, QWidget *parent= nullptr, const QString&title = QString(),QColorDialog:ColorDialogoptions options =ColorDialogOptions())//打开颜色选择对话框,并返回一个QColor对象
-
voidopen(QObjectreceiver,constcharmember)//打开颜⾊对话框
三.文件对话框(QFileDialog)
文件对话框用于应用程序中需要打开一个外部文件或需要将当前内容存储到指定的外部文件。常用方法介绍:
1、打开文件(一次只能打开一个文件)
QString getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), constQString &dir = QString(), const Qstring &filter =QString(), QString *selectedFilter = nullptr,QFileDialog:Options options = Options())
2、打开多个文件(一次可以打开多个文件)
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、保存文件
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、双精度浮点型输入数据对话框
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、整型输入数据对话框
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、选择条目型输入数据框
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);