QT文件對話框、QT色彩選擇對話框、QT字體選擇對話框

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();
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章