Qt Creator
是
Qt
官方的
IDE
,这个
IDE
为
Qt
编程人员提供了一个完整的开发环境。当然了,这个
IDE
是用
Qt
写的,也是免费的。这个
IDE
真正的编译部分使用了
MinGW gcc compiler
。也就是说,这个
IDE
主要的作用是协助开发人员编写代码,并以更加友好的图形界面方式(而不是命令行)使用
MinGW
。下面我以
MS Visual Studio
作为参照,讲一些在
Windows
平台上
Qt Creator
的使用体会与小技巧。
1.
工程文件与项目组织结构
VC6
之前都是使用
dsw
文件(之后是
sln
)来管理软件工程的(新版的
VC
提供
dsw
转换工具),每个
dsw
中可以有很多
dsp
,即项目文件。每个
dsp
中都可以包含任意多的
.h.cpp.rc
文件,每个
dsp
都可以单独编译。可以编译成
exe
或
dll
或
ocx
等等。一个
dsw
中的所有
dsp
也可以一起编译,而且各个
dsp
之间可以设定依存关系。比如一个
dsp
叫
baseui
,一个叫
myapp
。其中
baseui
将编译成为
baseui.dll
,而
myapp
将编译成为
myapp.exe
。在
myapp
中需要用到
baseui
中的某个类或某个资源或某个函数,那么
myapp
的依存关系中就需要有
baseui
。设定好依存关系后,每次整体编译之前,
baseui
就会先于
myapp
编译,从而保证
myapp
需要的
lib
在编译之前就已经具备。
在
Qt Creator
中,项目的组织文件是
pro
类型,它并不具备
dsw, dsp
那样的
2
级结构。它跟
dsw
或
dsp
文件一样,也是机器生成的文本文件。不过在
Qt Creator
中,你可能经常需要手动去编辑这个文件。下面是一个简单的
pro
文件:
TARGET = Test112
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS
+= mainwindow.h
FORMS
+= mainwindow.ui
第
1
行“
TARGET
”定义了目标文件的名称;
第
2
行“
TEMPLATE
”定义了目标文件的类型,
app
即可执行文件。
Lib
是库文件(可以使
dll
,也可以使使用静态链接的库或是
plugin
);
“
SOURCES
”里定义了所有的
cpp
文件;
“
HEADERS
”里定义了所有的
h
文件;
“
FORMS
”里定义了所有的
ui
文件(可以在
Qt Creator
中进行可视化编辑的界面类);
这里多说一下,
ui
文件经过
qmake
之后会生成
ui_
开头的一个
.h
文件,里面由程序自动生成一个新的
UI
类,类里面把可视化编辑的界面元素都用代码写出来。在
ui
文件对应的类中,这个自动生成的
ui
类会被
new
一个新的实例,用于协助开发人员。
不知道我说明白了没有,就是
ui
文件会帮助开发人员生成一些界面相关的代码,然而这些代码是以另一个新的类的成员变量及代码的形式被用于原来那个界面类的。(汗啊,我都说累了)我一直不明白为什么
Qt Creator
不像
VC
那样直接去修改原有类的代码。难道这个实现起来很困难吗?我打开
.ui
文件看过,它其实是界面的一个
xml
文件描述。忘记在哪里看到这种实现有一个优点就是如果程序界面部分写的足够灵活的话,程序升级时如果只涉及到界面,那么可以只下载这个
ui
文件进行升级即可。这个特性可能会让那些
saas
软件开发人员欣喜若狂。但对于大部分
desktop app
开发人员来说,还是有点让人迷惑。好在
Qt
中有
signal/slot
可用于
widget
与界面类(如
dialog
)之间传递消息,否则这种中间加一层“假父类”的实现方式是在是让人难以接受。
Pro
文件说了这么多,足以说明
Qt Creator
在项目管理与设置上并不是特别友好。与
VC
(甚至
VC6
)相比都有较大差距。编辑
pro
文件使我想起了
N
年前使用命令行方式编写
turbo C
程序。呵呵,可能开源软件就是这个范儿?
关于
pro
文件,还有很多内容需要开发人员去了解。我会专门写个
tip
。
2.
IDE
界面
VC
的界面很经典,多年未发生根本性的改变(但相信很多老
VCer
对
VC6
以后的版本取消
Class Wizard
仍然耿耿于怀)。
Qt Creator
界面比较一般。硬伤是没有类树(
Class Tree
)
,这个对于
OOP
来说非常的不便。由于没有类树,开发人员便不能对类进行相关的编码,这就意味着增加一个
member function
需要在该类的
.h
和
.cpp
文件中手工输入两次函数名称。同时,重载函数时也需比在
VC
中付出更多的时间。虽然增加一个函数的时间可能只增加
5-10
秒,但对于刚刚灵感闪现的程序员来说,可能会比较有挫折感。希望后面的版本能够加上。
代码输入界面
Qt Creator
做得不错,语法着色(不光有标准
C++
的着色,还有
Qt
特有关键字的着色,如
SLOT
等)和类似
VC
的
intellisense
功能(代码自动完成)让人感觉很舒服。我记得前段时间看
VC Team
的
BLOG
还有人留言说
intellisense
很多问题。在我使用
Qt Creator
的这两个月时间里,还没发现
bug
。但是我一直觉得
Visual Assist
的功能做的最专业。使用
VA
的同学请举手。
3.
编译
在编译速度上,
VC
全胜。快得不只一点点。当然
qmake
本身会多占用一些时间,但还是能明显感觉到
VC
快很多。
在编译代码质量上,我是门外汉,不敢妄下结论。但我感觉
Qt
生成的
exe
文件会更大一些,不知是不是为性能做的牺牲。所以
TX
门写代码时,千万不要图省事,把整个
Qt
模块(如
QtGUI
)都
include
进来。
4.
Debug
不得不说,又是
VC
赢了。
Qt Creator
不但速度慢,还经常有些莫名其妙的问题。你可能会被要求重新
build Debugging Helper
。还可能会出现
gdb crash
。
5.
帮助
MSDN
就不多说了。
Qt
专门有个
Qt Assist
程序用于提供所有帮助。
Qt Creator
中本身也有一个
help
模块。在网络上,
Qt central
提供
forum
和
wiki
。但是,如果编程中遇到问题,那么你就会发现,使用
Qt
的人比起使用
VC
的人来少太多了。可能
VC
中的一些小问题别人早就碰到并在网上公布解决方案了。而
Qt
中你碰到的问题,可能在网上很难找到答案。使用
Qt
的
TX
们,大家还要努力丰富开源社区。
6.
如何选择
如果你只是使用
Qt
在
Windows
上开发,可以选择
VC2008
。
Express
版本也是免费的。
如果你是要开发
Cross-platform
的程序,还是应该选择
Qt Creator
。因为它在
Windows, Linux
和
Mac
上都可以运行(
MinGW
也是
Cross-platform
的)。所以从平台移植和维护上考虑,可能
Qt Creator
是个更好的选择。另外,我个人的经历是,从
VC6
用到
2008
,经常会碰到
VC
莫名其妙的退出,有时代码还未保存。而在使用
Qt Creator
的这段时间里,这种情况从未发生。相信这也从侧面证明了
Qt
本身是很健壮的。
一些使用
Qt Creator
的
tip
1.
使用
network
或
opengl
或
sql
等模块后编译不通过
在
pro
文件中写如下语句:
QT += network
或
QT += opengl
或
QT += sql
2.
代码自动完成功能区分大小写
在
Tools->Options
菜单中的
Text Editor->Completion
中,勾掉“
Case-sensitive completion
”,这样就不会因为你大小写错了而使整个
completion
都消失掉。
3.
Debug
时提示没有
debug helper
如下图,在
Options
菜单中红圈的位置点击
Rebuild
。
4.
Qrc
中增加了图片,但是在程序中用不了
Qrc
文件中可以增加
Qt
程序使用的资源文件。这些文件会被编译到
exe
文件中。增加资源时需要先增加前缀
prefix
。看看你的
prefix
写的对不对。如果前缀是“
/
”那么一个典型的图片文件路径可能是“
:/Resources/Images/aaa.png
”。另外,在
qrc
中,文件名和路径名是
区分大小写的
。我曾经在这里卡了好几个小时,最后都怀疑
Qt Creator
是不是“水货”了。
5.
Qt Creator
在
Windows
系统中,怎样链接
VC
生成的动态链接库
这个问题曾经困扰了我一整天。我想的是按照
VC
中的方法,增加
include
文件,增加
lib
文件,然后编译即可。谁知链接时总是出现问题。提示是
undefined reference to XXXXX
。查了手册和网络,原来这是
mingw
用户在
windows
上经常遇到的问题,而且好像至今没有完美的解决方案。这个错误的起因是因为
VC
生成
lib
的
_stdcall
函数名与
mingw
生成的不一致。一种解决方案是使用
libdll
等工具生成新的用于
mingw
的
lib
,另一种解决方案是把代码全拿过来重新编译(汗)。
最后我也不知道为什么自己试出来一个新的方法,这个方法尚未从技术上找到原因。也未经过广泛的测试。有兴趣的
TX
可以试试。
如果你要链接到一个
abc.lib
文件,头文件是
abc.h
,动态链接库是
abc.dll
。那么在
pro
文件中先加入下面一行
INCLUDEPATH += D:/Qt/include
INCLUDEPATH
是一个编译变量,存储了所有包含
include
文件的路径,这个目录下保存了
abc.h
文件。然后再加入下面一行:
LIBS += D:/Qt/bin/abc.dll
LIBS
也是一个编译变量,存储了所有需要链接的库文件。看清楚了,不是“
abc.lib
”哦,是“
abc.dll
”。神奇吧,这样居然可以链接成功了(
lib
文件可以删了)。喜欢研究的
TX
可以研究研究
mingw
究竟是怎么做的。
6.
Qt
项目更换文件目录后编译失败
Qt Creator
编译时不支持中文路径名。对于带空格的路径,如果你想在
pro
文件中加入,需要使用
$$quote
来指定,如:
$$quote(C:/mylibs/extra libs/extra.lib)
。另外,如果你习惯了
Windows
下‘
\
’的话,最好改改你的习惯,在
Qt
中路径习惯用‘
/
’。
分享到:
相关推荐
麒麟系统QtCreator使用中文输入法的fcitx插件 麒麟系统QtCreator使用中文输入法的fcitx插件 麒麟系统QtCreator使用中文输入法的fcitx插件
qtcreator 使用教程,如何获取、安装、配置,以及使用示例
用QtCreator编写的涂鸦板和矩形绘图小软件,按住左键在白板上拖画产生 矩形方框,使用双缓冲画图,在灰色背景图片上,左键移动 是涂鸦板 用QtCreator编写的涂鸦板和矩形绘图小软件,按住左键在白板上拖画产生 矩形...
Linux 下使用QTCreator画UI界面,熟悉使用QTCreator工具编写、编译代码。
Qt Creator vim 配色方案,放到QT creator 安装文件夹下的style文件里。这个配色护眼,清楚
qt creator系列教程,学习qt creator的材料
QtCreator更新很快,但是翻译越来越差劲,这个为QtCreator菜单的汉化,基本...使用方法:替换D:\Qt\Qt5.9.5\Tools\QtCreator\share\qtcreator\translations下同名文件,注意文件名和原来的相同;注意安装目录可能不同;
解压包里的 qtcreator_zh_CN.qm 文件到 X:\Qt\2010.02.1\share\qtcreator\translations 注意修改你的Qt安装目录。 然后重启Qt Creator即可。
本文介绍linux(ubuntu和centos都可以)下编译安装QT及qtcreator,有具体的操作步骤,很方便搭建,如需要源码,另行联系
本文档涉及到Qt语言的开发工具之一Qt Creator的安装及使用过程
与第2版相比,本书使用Z新的Qt5.6.1和QtCreator4.0.1进行了全书修订,主要重写了3D绘图、影音媒体、WebKit等章节;添加了Qt5框架介绍、将Qt4代码迁移到Qt5等相关附录,从而帮助初学者快速入门Qt5编程。本书内容全面、...
D:\Qt\2010.04\share\qtcreator\translations目录下重启Qt Creator仍然可以汉化,qtcreator_zh_CN.qm的基础上进行汉化
QtCreator帮助文档.zip
C:\Qt\Qt5.10.0\Tools\QtCreator\lib 解压后放这个目录
Qt creator对excel的操作包括新建excel表,设置单元格的大小,背景颜色等
里面是Qt creator的各版本的安装包以及链接库,都是以网盘的形式给到的!对面学习或使用Qt的老铁来说,物超所值!
初学Qt,使用QMQTT的详细步骤,我这个人爱专牛角尖,不太会转弯,网上的教程我理解起来有困难,经过各种尝试,终是弄好了
windows下Qt creator 使用 VLD 工具的方法,下载 安装 使用 用浏览器打开
QtCreator调试工具,
与第2版相比,本书使用Z新的Qt5.6.1和QtCreator4.0.1进行了全书修订,主要重写了3D绘图、影音媒体、WebKit等章节;添加了Qt5框架介绍、将Qt4代码迁移到Qt5等相关附录,从而帮助初学者快速入门Qt5编程