歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Qt在Ubuntu下開發

Qt在Ubuntu下開發

日期:2017/3/1 10:28:54   编辑:Linux編程

安裝好Qt後可以在Shell中輸入

第一步 $designer #調出設計器

第二步 進行窗口設計工作

窗體為HelloDialog保存窗體為Hello目錄下hellodialog.ui。

第三步 源程序對ui的調用

在Hello目錄下新建一main.cpp文件,

  1. #include <QApplication>
  2. #include <QDialog>
  3. #include "ui_hellodialog.h"
  4. int main(int argc,char *argv[])
  5. {
  6. QApplication app(argc,argv);
  7. Ui::HelloDialog ui;
  8. QDialog *dialog=new QDialog;
  9. ui.setupUi(dialog);
  10. dialog->show();
  11. return app.exec();
  12. }

第四步 $qmake -project #生成pro文件

shell進入到hello目錄,

$qmake -project #生成hello.pro

第五步 $qmake -hello.pro生成makefile文件

$qmake -hello.pro#生成makefile文件

qmake工具非常智能,可以自動檢測到用戶界面文件hellodialog.ui並且可以生成適當的makefile規則來調用Qt的用戶界面編譯器(user interface compiler,uic)。

uic工具會將hellodialog.ui文件轉換成C++並且將轉換結果存儲在ui_hellodialog.h文件中。

生成的ui_hellodialog.h文件中包含了類Ui::HelloDialog的定義,該類是一個與hellodialog.ui等價的c++文件。這個類聲明了一些成員變量,存儲著窗體中的子窗口部件和布局,www.linuxidc.com以及用於初始化窗體的setupUi( )函數。生成的類如下所示

  1. class Ui::HelloDialog
  2. {
  3. public:
  4. QLabel *label;
  5. QLineEdit *lineEdit;
  6. QSpacerItem* spacerItem;
  7. QPushButton *okButton;
  8. ....
  9. void setupUi(QWidget *widget){
  10. ...
  11. }
  12. };

生成的類沒有任何基類,main中調用該窗體時,可以創建一個QDialog對象,然後把它傳遞給setupUi()函數。

第六步 $make #在當前目錄下生成hello程序

第七步 $./hello #運行hello程序

$qtdemo查看qt的演示程序

$assistant打開qt的文檔

$make編譯qt,生成qt庫,同時編譯所有的演示程序、示例程序和工具軟件,某些系統中成為gmake命令。

內置的qt編譯工具為qmake。開源的IDE軟件有KDevelop和QDevelop,我這裡裝的是(QDevelop),他們都是用Qt編寫的,並且為Qt開發提供了良好的支持。

qmake可以使用與平台無關的.pro文件生成與平台相關的makefile文件。

工程文件三種類型:app(單獨的應用程序)/lib(靜態和動態庫)/subdirs(遞歸編譯),工程文件類型使用TEMPLATE變量指定

TEMPLATE=lib

subdirs模板可以用來編譯子目錄裡的目標文件。除TEMPLATE=subdirs外,還需指定SUBDIRS變量。在每個子目錄中,qmake會搜徐以目錄名命名的.pro文件,並且會編譯該工程。

要生成工程文件hello.pro的makefile,可以輸入qmake hello.pro,

之後可以調用make或nmake編譯工程。

也可以使用-project參數在當前目錄下使用qmake生成.pro文件,

e.g. qmake -project

這種模式下,qmake將搜索當前目錄下已知擴展名(.h.、.cpp、.ui,等等)的文件,生成一個列舉這些文件的.pro文件。

Copyright © Linux教程網 All Rights Reserved