使用QT设计师设计的窗口部件,用uic 工具可以转换成C++代码:
(1)首先用QT设计师设计一个窗口,选择一个英文目录下,保存为gotocelldialog.ui
我的文件保存在:F:\qt-program\gotocell
(2)在该目录下创建一个 main.cpp 文件,内容如下:
#include <QApplication>
#include <QDialog>
#include "ui_gotocelldialog.h"
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
Ui::GoToCellDialog ui;
QDialog *dialog = new QDialog;
ui.setupUi(dialog);
dialog->show();
return app.ecec();
}
打开Qt Command Prompt
-> f: // 回车,可以进入F盘
->cd qt-program\gotocell // 回车进入我保存文件的目录
->dir // 查看该目录下的所有文件
->qmake -project // 生成 gotocell.pro 文件
->qmake gotocell.pro // 生成 makefile 文件
-> uic gotocelldialog.ui -o ui_gotocelldialog.h // -o 用来制定目标文件,生成指定的ui_gotocelldialog.h
创建两个文件:
gotocelldialog.h
#ifndef GOTOCELLDIALOG_H
#define GOTOCELLDIALOG_H
#include <QDialog>
#include "ui_gotocelldialog.h"
// GoToCellDialog 继承自两个类
class GoToCellDialog:public QDialog,public Ui::GoToCellDialog
{
Q_OBJECT
public:
GoToCellDialog(QWidget *parent=0);
private slots:
void on_lineEdit_textChanged();
};
#endif
gotocelldialog.cpp
#include <QtGui>
#include "gotocelldialog.h"
GoToCellDialog::GoToCellDialog(QWidget *parent):QDialog(parent)
{
setupUi(this); // 初始化窗体
// 允许一个大写或者小写字母,后面跟一个范围1-9的数字,后面再跟0个,1个,2个0-9的数字
QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}"); // 正则表达式
lineEdit->setValidator(new QRegExpValidator(regExp,this)); // validator n 验证器
connect(okButton,SIGNAL(clicked()),this,SLOT(accept())); // 设置QDialog::Accepted 为1
connect(cancelButton,SIGNAL(clicked()),this,SLOT(reject())); // 设置QDialog::Regected 为0
}
void GoToCellDialog::on_lineEdit_textChanged()
{
okButton->setEnabled(lineEdit->hasAcceptableInput());
}
main.cpp 文件的修改
#include <QApplication>
//#include <QDialog>
//#include "ui_gotocelldialog.h"
#include "gotocelldialog.h"
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
//Ui::GoToCellDialog ui;
//QDialog *dialog = new QDialog;
//ui.setupUi(dialog);
//dialog->show();
GoToCellDialog *dialog = new GoToCellDialog;
dialog->show();
return app.exec();
}
---> qmake -project
--->qmake gotocell.pro
--->mingw32-make
--->cd debug
--->gotocell.exe
参考书籍:
《C++ GUI Qt 4 编程》(第二版)