QT中 uic 工具的使用

程式設計-浪子發表於2015-03-30

   使用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();
}


(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




建立兩個檔案:

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 程式設計》(第二版)




相關文章