dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include<QPushButton>
#include<QLineEdit>
#include<QFileDialog>
#include<QGridLayout>
#include<QDialog>
class MyDialog : public QDialog
{
Q_OBJECT
public:
MyDialog(QWidget *parent = 0);
private slots:
void showFile();
void showColor();
void showFont();
private:
//文件
QPushButton *fileButton;
QLineEdit *fileLineEdit;
QGridLayout *layout;
//色彩
QPushButton *colorButton;
QFrame *colorFrame;
//字體
QPushButton *fontButton;
QLineEdit *fontEdit;
};
#endif // DIALOG_H
dialog.cpp
#include "dialog.h"
#include<QApplication>
#include<QFileDialog>
#include<QGridLayout>
#include<QDialog>
#include<QColorDialog>
#include<QFontDialog>
MyDialog::MyDialog(QWidget * parent) : QDialog(parent)
{
fileButton = new QPushButton;
fileButton->setText(tr("文件標準對話框實例"));
fileLineEdit = new QLineEdit;
layout = new QGridLayout(this);
layout->addWidget(fileButton, 0, 0);
layout->addWidget(fileLineEdit, 0, 1);
connect(fileButton, SIGNAL(clicked()), this, SLOT(showFile()));
colorButton = new QPushButton(tr("顏色標準對話框實例"));
colorFrame = new QFrame;
colorFrame->setFrameShape(QFrame::Box);
colorFrame->setAutoFillBackground(true);
layout->addWidget(colorButton, 1, 0);
layout->addWidget(colorFrame, 1, 1);
connect(colorButton, SIGNAL(clicked()), this, SLOT(showColor()));
fontButton = new QPushButton(tr("字體標準對話框實例"));
fontEdit = new QLineEdit;
fontEdit->setText(tr("welocome!"));
layout->addWidget(fontButton, 2, 0);
layout->addWidget(fontEdit, 2, 1);
connect(fontButton, SIGNAL(clicked()), this, SLOT(showFont()));
}
void MyDialog::showFile(){
QString s = QFileDialog::getOpenFileName(this, "open file dialog", "/", "(*.*)");//c++ files(*.cpp);;c files(*.c);;Head files(*.h)
fileLineEdit->setText(s);
}
void MyDialog::showColor(){
QColor c = QColorDialog::getColor(Qt::blue);
if(c.isValid()){
colorFrame->setPalette(QPalette(c));
}
}
void MyDialog::showFont(){
bool ok;
QFont f = QFontDialog::getFont(&ok);
if(ok){
fontEdit->setFont(f);
}
}
int main(int argc, char* argv[]){
QApplication app(argc, argv);
MyDialog d;
d.show();
return app.exec();
}