dialog头文件
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include<QPushButton>
#include<QLineEdit>
#include<QGridLayout>
#include<QFont>
class Dialog : public QDialog
{
Q_OBJECT
public:
Dialog(QWidget *parent = 0);
~Dialog();
private slots:
void ShowFileDialog();
void showColorDialog();
void showFontDialog();
private:
QPushButton *m_fileBtn; //打开文件对话框
QLineEdit *m_fileLineEdit; //显示所选文件路径
QGridLayout * m_mainLayout; //布局管理器
QPushButton *m_colorBtn; //打开颜色对话框
QFrame *m_colorFrame; //显示所选颜色的属性
QPushButton *m_fontBtn; //打开字体对话框
QLineEdit * m_fontShow; //用来显示字体的对话框
QFont *m_font; //显示悬着的字体样式
};
#endif // DIALOG_H
dialog CPP文件
#include "dialog.h"
#include<QFileDialog>
#include<QColorDialog>
#include<QFontDialog>
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
this->setWindowTitle("标准框");
m_fileBtn=new QPushButton("文件标准对话框");
m_fileLineEdit=new QLineEdit;
m_mainLayout=new QGridLayout(this);
m_mainLayout->addWidget(m_fileBtn,0,0);
m_mainLayout->addWidget(m_fileLineEdit,0,1);
connect(m_fileBtn,&QPushButton::clicked,this,&Dialog::ShowFileDialog);
//颜色标准对话框
m_colorBtn =new QPushButton("颜色标准对话框");
//当标准框没有指定父类的时候 再被添加到布局管理器的时候 其所有的父类重新分配
//初始化边框的时候 需要设置边框属性
m_colorFrame=new QFrame;
m_colorFrame->setFrameStyle(QFrame::Box);
//设置填充背景属性
m_colorFrame->setAutoFillBackground(true);
m_mainLayout->addWidget(m_colorBtn,1,0);
m_mainLayout->addWidget(m_colorFrame,1,1);
connect(m_colorBtn,&QPushButton::clicked,this,&Dialog::showColorDialog);
//显示字体对话框
m_fontBtn =new QPushButton("标准字体对话框");
m_fontShow =new QLineEdit("你好 明天"); //字体栏
m_font=new QFont;
m_mainLayout->addWidget(m_fontBtn,2,0);
m_mainLayout->addWidget(m_fontShow,2,1);
connect(m_fontBtn,&QPushButton::clicked,this,&Dialog::showFontDialog);
}
Dialog::~Dialog()
{
}
void Dialog::ShowFileDialog()
{
//返回值是文件的路径
//在当前路径下寻找格式为C++ C H的文件
QString FilePath=QFileDialog::getOpenFileName(this,"文件对话框",".",
"C++ files(*.cpp);;C files(*.c);;Header files(*.h)");
m_fileLineEdit->setText(FilePath);
}
void Dialog::showColorDialog()
{
//当用户选择的时候 就会在返回用户选择的颜色
QColor m_color= QColorDialog::getColor(Qt::yellow);
if(m_color.isValid())
{
m_colorFrame->setPalette(QPalette(m_color));
}
}
void Dialog::showFontDialog()
{
bool ok;
QFont font= QFontDialog::getFont(&ok);
if(ok)
{
m_fontShow->setFont(font);
}
}
效果如下
可以把查看文件 颜色 以及 字体对话框里面所有属性 ,并将其效果在右侧对话框中显示