标准基本对话框应用
通过一个实例来介绍Qt5中对于各类对话框的应用。这个实例中具有以下这几种QT的标准对话框:
标准文件对话框(QFileDialog)
标准颜色对话框(QColorDialog)
标准字体对话框(QFontDialog)
标准输入对话框(QInputDialog)
标准消息对话框(QMessageBox)
效果展示
各种基本对话框都是通过调用各自不同的静态函数来完成其功能。具体如下:
类 | 类说明 | 静态函数 | 函数说明 |
---|---|---|---|
QFileDialog类 | 标准文件对话框 | getOpenFileName | 获得用户选择的文件名 |
– | – | getSaveFileName | 获得用户保存的文件名 |
– | – | getExistingDirectory | 获得用户选择的已存在的目录名 |
– | – | getOpenFileNames | 获得用户选择的文件名列表 |
QColorDialog类 | 标准颜色对话框 | getColor | 获得用户选择的颜色值 |
QFontDialog类 | 标准字体对话框 | getFont | 获得用户选择的字体 |
QInputDialog类 | 标准输入对话框 | getText | 标准字符串输入对话框 |
– | – | getItem | 下拉表条目输入框 |
– | – | getInt | int类型数据输入对话框 |
– | – | getDouble | double类型数据输入对话框 |
QMessageBox类 | 消息对话框 | QMessageBox::question | question消息框 |
– | – | QMessageBox::information | information消息框 |
– | – | QMessageBox::warning | warning消息框 |
– | – | QMessageBox::critical | critical消息框 |
– | – | QMessageBox::about | about消息框 |
– | – | QMessageBox::aboutQt | about Qt消息框 |
函数详细介绍看Qt帮助文档
源码如下
文件分组
dialog.h
主界面头文件以及信号槽的定义
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QLineEdit>
#include <QPushButton>
#include <QGridLayout>
#include "inputdialog.h"
#include "msgboxdlg.h"
QT_BEGIN_NAMESPACE
namespace Ui {
class Dialog; }
QT_END_NAMESPACE
class Dialog : public QDialog
{
Q_OBJECT
private:
QLineEdit* filePathEdit;
QPushButton* fileBtn;
QPushButton* colorBtn;
QGridLayout* mainLayout;
QFrame* colorFrame;
QPushButton* fontBtn;
QLineEdit* fontLineEdit;
QPushButton* inputBtn;
QPushButton* infoBtn;
InputDlog* indialog;
MsgBoxDlg* msgbox;
QPushButton* customBtn;
QLabel* label;
private slots:
void showFile();
void showcolor();
void showfont();
void showInput();
void showMsgBox();
void showCustom();
public:
Dialog(QWidget *parent = nullptr);
~Dialog();
private:
Ui::Dialog *ui;
};
#endif // DIALOG_H
dialog.cpp文件
界面的基本布局
#include "dialog.h"
#include "ui_dialog.h"
#include "inputdialog.h"
#include <QColorDialog>
#include <QFileDialog>
#include <QFontDialog>
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
, ui(new Ui::Dialog)
{
ui->setupUi(this);
setWindowTitle("各种标准对话框示例");
fileBtn = new QPushButton("文件标准对话框实例");
filePathEdit = new QLineEdit;
mainLayout = new QGridLayout(this);
mainLayout->addWidget(fileBtn,0,0);
mainLayout->addWidget(filePathEdit,0,1);
connect(fileBtn,&QPushButton::clicked,this,&Dialog::showFile);
colorBtn = new QPushButton("颜色标准对话框实例");
colorFrame = new QFrame;
colorFrame->setFrameShape(QFrame::StyledPanel);//设置框架的形状
colorFrame->setAutoFillBackground(true);//启用背景颜色填充
mainLayout->addWidget(colorBtn,1,0);
mainLayout->addWidget(colorFrame,1,1);
connect(colorBtn,&QPushButton::clicked,this,&Dialog::showcolor);
//标准字体对话框
fontBtn = new QPushButton("标准字体对话框");
fontLineEdit = new QLineEdit("Welcome");
mainLayout->addWidget(fontBtn,2,0);
mainLayout->addWidget(fontLineEdit,2,1);
connect(fontBtn,&QPushButton::clicked,this,&Dialog::showfont);
//标准输入对话框/标准消息对话框
inputBtn = new QPushButton("标准输入对话框");
infoBtn = new QPushButton("标准消息对话框");