1. 程式人生 > >Qt中常見對話方塊的使用/QMessageBox/QFontDialog/QFileDialog

Qt中常見對話方塊的使用/QMessageBox/QFontDialog/QFileDialog

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”按鈕,結果如下: