Qt中常見對話方塊的使用/QMessageBox/QFontDialog/QFileDialog
阿新 • • 發佈:2019-02-18
Qt為使用者提供了許多對話方塊的類,用來進行互動操作,如常見的關於對話方塊(QMessageBox),字型對話方塊(QFontDialog),顏色對話方塊(QColorDialog),檔案對話方塊(QFileDialog)等。本文演示在Visual Stuido2010中建立建立常用對話方塊及相關函式的使用方法。
一.建立基於Qt Application的工程,基類選擇QWidget.
二.手動完成類的設計,在dlgwidget.h中完成類的宣告,在dlgwidget.cpp中完成類的定義。
#ifndef DLGWIDGET_H #define DLGWIDGET_H #include <QtGui/QWidget> #include "ui_dlgwidget.h" #include < QApplication > #include < QPushButton > #include < QMessageBox > #include < QFont > #include < QFontDialog > #include < QColor > #include < QColorDialog > #include < QString > #include < QFileDialog > #include < QHBoxLayout > class DlgWidget : public QWidget { Q_OBJECT public: DlgWidget(QWidget *parent = 0, Qt::WFlags flags = 0); ~DlgWidget(); private: Ui::DlgWidgetClass ui; QPushButton *btn_About; QPushButton *btn_Font; QPushButton *btn_Color; QPushButton *btn_File; QHBoxLayout *layout; signals: public slots: //槽函式 private slots: void my_about(); void my_font(); void my_file(); void my_color(); }; #endif // DLGWIDGET_H
#include "dlgwidget.h" //建構函式 DlgWidget::DlgWidget(QWidget *parent, Qt::WFlags flags) : QWidget(parent, flags) { ui.setupUi(this); setWindowTitle("Test&Dialog"); btn_About = new QPushButton("&About"); btn_Font = new QPushButton("&Font"); btn_Color = new QPushButton("&Color"); btn_File = new QPushButton("&File"); connect(btn_About,SIGNAL(clicked()),this,SLOT(my_about())); //連線訊號與槽函式 connect(btn_Font,SIGNAL(clicked()),this,SLOT(my_font())); connect(btn_Color,SIGNAL(clicked()),this,SLOT(my_color())); connect(btn_File,SIGNAL(clicked()),this,SLOT(my_file())); layout = new QHBoxLayout(); layout->addWidget(btn_About); layout->addWidget(btn_Font); layout->addWidget(btn_Color); layout->addWidget(btn_File); setLayout(layout); } //解構函式 DlgWidget::~DlgWidget() { } //槽函式 void DlgWidget::my_about() { QMessageBox::about(this,"about","this is a about dialog\n"); } void DlgWidget::my_font() { bool ifok; QFont font = QFontDialog::getFont(&ifok,this); } void DlgWidget::my_color() { QColor color = QColorDialog::getColor(Qt::green,this); //初始顏色為綠色 } void DlgWidget::my_file() { QString fileName = QFileDialog::getOpenFileName(this,tr("file open"),"/",tr("All Files(*));;TextFiles(*.txt)")); }
入口函式main在建立工程時由系統自己建立,可保持不變。
#include "dlgwidget.h"
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
DlgWidget w;
w.show();
return a.exec();
}
三.編譯執行
單擊“About”按鈕,會彈出如下對話方塊,
單擊"Font"按鈕,結果如下:
單擊“Color”按鈕,結果如下:
單擊“File”按鈕,結果如下: