Qt为用户提供了许多对话框的类,用来进行交互操作,如常见的关于对话框(QMessageBox),字体对话框(QFontDialog),颜色对话框(QColorDialog),文件对话框(QFileDialog)等。本文演示在Visual Stuido2010中创建创建常用对话框及相关函数的使用方法。
一.创建基于Qt Application的工程,基类选择QWidget.
二.手动完成类的设计,在dlgwidget.h中完成类的声明,在dlgwidget.cpp中完成类的定义。
#ifndef DLGWIDGET_H
#define DLGWIDGET_H
#include
#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)"));
}
#include "dlgwidget.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
DlgWidget w;
w.show();
return a.exec();
}
单击“About”按钮,会弹出如下对话框,
单击"Font"按钮,结果如下:
单击“Color”按钮,结果如下:
单击“File”按钮,结果如下: