标准 文件 对话框类

标准基本对话框所需基本函数,
在这里插入图片描述

下面我们做一个标准文件对话框

新建Qt Widgets Application ,项目名称为 DialogExample

基类选择 QDialog

取消“创建界面”复选框选中状态

在这里插入图片描述

你品,你细细品

  • 因为这个是连着的四个对话框,所以这部分函数里会有其他类的部分代码

先上头文件

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QLineEdit>
#include <QGridLayout>
#include <QPushButton>
#include <QFrame>

#include "inoputdlg.h"
#include "msgboxdlg.h"

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);

private:
    QPushButton * fileBtn;
    QLineEdit * fileLineEdit;
    QGridLayout * mainLayout;

    QPushButton * colorBtn;
    QFrame * colorFrame;

    QPushButton * fontBtn;
    QLineEdit * fontLineEdit;

    QPushButton * inputBtn;
    inoputdlg * inputdig;

    QPushButton * MsgBtn;
    MsgBoxDlg * msgDlg;
private slots:
    void shoeFiles();
    void showColors();
    void showFont();
    void showInputDlg();
    void shoeMsgDlg();

};

#endif // DIALOG_H

再上源文件

#include "dialog.h"
#include <QString>
#include <QFileDialog>
#include <QColor>
#include <QColorDialog>
#include <QPalette>
#include <QFont>
#include <QFontDialog>


Dialog::Dialog(QWidget *parent) :
    QDialog(parent)
{
    setWindowTitle(tr("各类标准对话框示例"));
    fileBtn = new QPushButton();
    fileBtn->setText(tr("文件标准对话框示例"));
    fileLineEdit = new QLineEdit();

    mainLayout = new QGridLayout(this);
    mainLayout->addWidget(fileBtn,0,0);
    mainLayout->addWidget(fileLineEdit,0,1);

    connect(fileBtn,SIGNAL(clicked()),this,SLOT(shoeFiles()));

/* -------------------------------------------------------------------------------*/

    colorBtn = new QPushButton();
    colorBtn->setText(tr("颜色标准对话框示例"));
    colorFrame = new QFrame();
    colorFrame->setFrameShape(QFrame::Box);
    colorFrame->setAutoFillBackground(true);

    mainLayout->addWidget(colorBtn,1,0);
    mainLayout->addWidget(colorFrame,1,1);

    connect(colorBtn,SIGNAL(clicked()),this,SLOT(showColors()));

/* -------------------------------------------------------------------------------*/

    fontBtn = new QPushButton();
    fontBtn->setText(tr("字体标准对话框示例"));
    fontLineEdit = new QLineEdit();
    fontLineEdit->setText(tr("Welcome!"));

    mainLayout->addWidget(fontBtn,3,0);
    mainLayout->addWidget(fontLineEdit,3,1);

    connect(fontBtn,SIGNAL(clicked()),this,SLOT(showFont()));

/* -------------------------------------------------------------------------------*/

    inputBtn = new QPushButton();
    inputBtn->setText(tr("标准输入对话框示例"));
    mainLayout->addWidget(inputBtn,4,0);

    connect(inputBtn,SIGNAL(clicked()),this,SLOT(showInputDlg()));

/* -------------------------------------------------------------------------------*/

    MsgBtn = new QPushButton(tr("标准消息对话框示例"));
    mainLayout->addWidget(MsgBtn,4,1);
    connect(MsgBtn,SIGNAL(clicked()),this,SLOT(shoeMsgDlg()));

}


/* -------------------------------------------------------------------------------*/
/* -------------------------------------------------------------------------------*/
/* -------------------------------------------------------------------------------*/


void Dialog::shoeFiles()
{
//getOpenFileName,静态函数,返回用户选择的文件名
    //若用户选择取消则返回一个空串串
    QString S = QFileDialog::getOpenFileName(this,"Open file dialog","/",
                                             "C++ files(*.cpp);;C files(*.c);;Head files(*.h)");
    fileLineEdit->setText(S);
}

void Dialog::showColors()
{
    QColor C = QColorDialog::getColor(Qt::blue);
    if(C.isValid())
    {
        colorFrame->setPalette(QPalette(C));
    }
}

void Dialog::showFont()
{
    bool ok;
    QFont f = QFontDialog::getFont(&ok);
    if(ok)
    {
        fontLineEdit->setFont(f);
    }
}

void Dialog::showInputDlg()
{
    inputdig = new inoputdlg(this);
    inputdig->show();
}

void Dialog::shoeMsgDlg()
{
    msgDlg = new MsgBoxDlg();
    msgDlg->show();
}


/* -------------------------------------------------------------------------------*/


发布了61 篇原创文章 · 获赞 3 · 访问量 1614

猜你喜欢

转载自blog.csdn.net/qq_43762191/article/details/104028235