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"按钮,结果如下:

扫描二维码关注公众号,回复: 3216747 查看本文章


单击“Color”按钮,结果如下:


单击“File”按钮,结果如下:



猜你喜欢

转载自blog.csdn.net/u013232740/article/details/49704327