博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ GUI Qt4 自学笔记——Qt qmake命令
阅读量:6688 次
发布时间:2019-06-25

本文共 1895 字,大约阅读时间需要 6 分钟。

在已经使用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 
2 #include
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

转载地址:http://zhzoo.baihongyu.com/

你可能感兴趣的文章
asp.net mvc生命周期学习
查看>>
静态类(static)与java值传递、引用传递小测
查看>>
Android深入浅出系列之Bluetooth—蓝牙操作(一)
查看>>
前端基础(JavaScript)
查看>>
解决ftp登录问题:500 OOPS: cannot change directory:/home/xxx 500 OOPS: child died
查看>>
MongoDB在Windows下安装配置
查看>>
Eclipse 项目有红感叹号、小红叉
查看>>
如何使用Dev C++调试(debug)c程序
查看>>
Windows Phone开发(1):概论
查看>>
如何修改博客样式
查看>>
C#语法之泛型
查看>>
ArcGIS API for Silverlight中加载Google地形图(瓦片图)
查看>>
如何生成excel文件作为图像识别结果
查看>>
Liferay-Activiti 功能介绍 (新版Liferay7基本特性)
查看>>
Dom4j解析xml
查看>>
ubuntu 安装过程记录
查看>>
my blog zen :分享所学,backup一切~
查看>>
武侠-event
查看>>
学习C# delegate和C# event
查看>>
AD域的唯一ID字段uSNCreated
查看>>