QT中 uic 工具的使用

   使用QT设计师设计的窗口部件,用uic 工具可以转换成C++代码:

(1)首先用QT设计师设计一个窗口,选择一个英文目录下,保存为gotocelldialog.ui

我的文件保存在:F:\qt-program\gotocell

QT中 uic 工具的使用_第1张图片

(2)在该目录下创建一个 main.cpp 文件,内容如下:

#include 
#include 
#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();
}


(3)使用 qmake 工具

   打开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

QT中 uic 工具的使用_第2张图片



创建两个文件:

gotocelldialog.h 

#ifndef GOTOCELLDIALOG_H
#define GOTOCELLDIALOG_H

#include 

#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 
#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 
//#include 
//#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 编程》(第二版)




你可能感兴趣的:(QT学习笔记,qt,qmake,uic)