QT学习之3---命令行编译

        学习《C++ GUI QT4编程》一开始作者就是用的命令行编译的方式,对于我这种从来没用过命令行的IDE人,颇感麻烦,以前连个cmd下的cd命令都是时而会用时而不会,虽然有心感觉应该学习一下,但是从来都是战胜不了借口。

        终于看到第二章创建对话框时,IDE用不下去了,是该学习一下命令行编译的时候了。

        开始先要设置好mingw路径的环境变量,否则会找不到编译命令。

首先创建的是一个纯C++的cout输出程序,不涉及GUI的,最简单的:

#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
	cout<<"this is a pure console app without GUI"<<endl;
	return 0;
}

然后命令行输入:

qmake -project

qmake purecpp.pro

mingw32

【我把mingw32-make.exe改为了mingw32.exe,我的makefile生成的exe文件路径是在release文件夹下】

一切OK,但是再输入:

release\purecpp却什么也没有出来???程序应该是已经运行了,但是没有出现字符串!

使用Creator创建了一个控制台的程序,发现pro文件中有这么一句:CONFIG += console,然后网上搜了一下,要输出到控制台需要加入这一句,后面还有一句是CONFIG   -= app_bundle,据说是跟mac有关的,但是不加这句也没问题。

所以如果想要输出控制台就要在pro文件中加入这一句:

CONFIG   += console

然后重新输入qmake purecpp.pro

mingw32编译之后,再运行就可以了。

【注意不要从qmake -project开始了,否则运行这一句又生成了工程文件pro,上面刚刚加入的依据config就没了,前功尽弃!】

控制台的输入输出如下:


控制台程序OK了,下一步是GUI的,像书上一样首先使用QT designer随便设计了一个窗体对话框:


保存什么的跟书上的一样,我的是qtdesign.ui

然后在同一目录下创建了一个main.cpp

#include <QtWidgets/qapplication>
#include <QtWidgets/qdialog>
#include "ui_qtdesign.h"

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	Ui::TestDlg ui;
	QDialog *dlg = new QDialog;
	ui.setupUi(dlg);
	dlg->show();
	return app.exec();
}

【也可以在mingw32编译之前创建,根据ui文件生成的h文件和类来写】

然后就是上面的那一套命令行了,书上说的是qmake会根据ui文件自动调用uic生成对应的h文件,不过实际却没有产生h文件,需要自己调用uic来生成。

如下图是只调用qmake的后果:


可以看到文件夹中根本没有产生.h文件,mingw编译的结果也是出错,所以自己uic编译生成h文件:


这下有了h文件了,不过编译还是不对的,生成了一大堆的链接错误,因为我们使用了widgets模块,而pro中没有,所以需要在pro中手动加入:

QT   += widgets

这时再进行mingw编译结果:


运行的结果同时显示出来,与设计的是一样的,只是没有加入响应,点击按钮的话是没有反应的,后面的响应就可以按照书上讲的一步一步的加入了。

---------------------------------------------------

后记:这次学习了一点点的使用命令行编译QT工程的知识,虽然只是两个小例子,但是自己却断断续续摸索了一两天,可谓摸着石头过河,深浅都知道了,这样学习虽然有点慢但是学到的确实挺深刻的。

使用命令行有个缺点就是需要自己动手修改pro文件,进行配置,这个在qmake的help中有些说明:


-project中的Note中提到了pro文件需要自己设置。一些配置项不熟的话还是有点麻烦的,这次只是学习了一点:包含模块QT,配置CONFIG的东西,以后应该慢慢的学习pro的其他配置项。

在使用中摸索学习,摸着石头过河!



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值