QT基础之【QDialog】对话框类详解,示例源码

标准基本对话框应用

通过一个实例来介绍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("标准消息对话框");
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值