C++ GUI Qt4 自學筆記——Qt qmake命令


在已經使用Designer生成對話框(.ui文件)和建立main.cpp文件的情況下,可以利用qmake自動生成工程文件(.pro文件)和makefile文件,而makefile文件又能調用user interface compiler(uic),uic工具將.ui文件轉換成C++代碼並存儲到相應的ui_***.h文件中,這里的“***”就是此前建立的對話框的名字。

本文以《C++ GUI Qt4 編程(第二版)》中第二章第三節《快速設計對話框》中的內容為例進行說明。即使沒有閱讀過該書,同樣可以閱讀並理解以下內容。

一、設計對話框並建立main.cpp

首先用Qt Designer設計一個對話框,假設對話框的名字是GotoCell,對話框保存在gotocell目錄下(此例中路徑:F:\GUI\gotocell),文件名為gotocelldialog.ui.

然后在同一目錄下新建一個main.cpp,新建的方法很簡單,只需新建一個txt文件,然后重命名為main.cpp即可,注意不可保留原來的后綴名“.txt”。然后使用你所喜歡的代碼編輯器在該文件中編輯代碼,本例中輸入以下代碼:

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

如果所建立的對話框名字不是GotoCell,在代碼中相應位置做修改即可。

至此,准備工作完成,下面調用qmake。

二、調用qmake生成.ui文件和makefile文件

調用qmake需要在命令窗口中進行。命令窗口的進入:運行——輸入“cmd”后按確定,彈出如下示界面:

qmake需要利用此前建立的ui文件和cpp文件,所以必須先進入這兩個文件的存放目錄gotocell才能使qmake正常運行,此前已說明gotocell的路徑:F:\GUI\gotocell。下面講述如何進入gotocell文件夾。

在命令窗口中輸入“F:”(省去雙引號,下同)后按回車,顯示“F:\>”,表明已進入F盤。然后輸入“cd F:\GUI\gotocell”,“cd”是進入命令,一個空格后緊接的是要進入的目錄路徑。回車后顯示“F:\GUI\gotocell>”表明已成功進入gotocell文件夾。此時可以調用qmake。

qmake命令有不同的形式,對應不同的功能,建立工程文件.pro文件和makefile文件的命令分別是“qmake -project”和“qmake gotocell.pro”,注意第一個命令中“-”之前是有一個空格的。在命令窗口中輸入“qmake -project”(也可復制粘貼),回車,然后再輸入“qmake gotocell.pro”,回車。注意這兩個命令的先后順序不能互換,因為要先通過第一個命令建立工程文件gotocell.pro才可能有命令“qmake gotocell.pro”的實現。

執行以上命令后可以看到gotocell目錄下多了幾個文件(原來只有main.cpp和gotocelldialog.ui):

但是我們的工作尚未完成,因為頭文件還沒有建立。我們需要繼續在命令窗口中執行make命令。在命令窗口中輸入“make”后按回車即可。注意如果此前已經關閉了命令窗口,此時就需要重新進入gotocell目錄,才能執行make命令。
窗口顯示信息如下:
在gotocell目錄中,可以看到新增了一個文件:ui_gotocelldialog.h。至此,qmake的使命完成。
需要說明的是,使用Qt Creator打開pro文件時,可能發現ui_gotocelldialog.h並沒有加入到工程當中:
如圖,並無“Header”。此時可以手動添加,鼠標右鍵點擊“gotocell”,選擇“Add Existing Files”,然后找到ui_gotocelldialog即可。
 
完。
2013-03-05  20:25:41


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM