欢迎来到天天文库
浏览记录
ID:6472103
大小:46.50 KB
页数:5页
时间:2018-01-15
《qt creator使用体会与小技巧》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、QtCreator使用体会与小技巧1·4QtCreator使用体会与小技巧QtCreator是Qt官方的IDE,这个IDE为Qt编程人员提供了一个完整的开发环境。当然了,这个IDE是用Qt写的,也是免费的。这个IDE真正的编译部分使用了MinGWgcccompiler。也就是说,这个IDE主要的作用是协助开发人员编写代码,并以更加友好的图形界面方式(而不是命令行)使用MinGW。下面我以MSVisualStudio作为参照,讲一些在Windows平台上QtCreator的使用体会与小技巧。1.工程文件与项目组织结构VC6之前都是使用dsw文件(之后是sln)来管理软件工程的(新版的VC提
2、供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编译,从而保证mya
3、pp需要的lib在编译之前就已经具备。在QtCreator中,项目的组织文件是pro类型,它并不具备dsw,dsp那样的2级结构。它跟dsw或dsp文件一样,也是机器生成的文本文件。不过在QtCreator中,你可能经常需要手动去编辑这个文件。下面是一个简单的pro文件:TARGET=Test112TEMPLATE=appSOURCES+=main.cppmainwindow.cppHEADERS+=mainwindow.hFORMS+=mainwindow.ui第1行“TARGET”定义了目标文件的名称;第2行“TEMPLATE”定义了目标文件的类型,app即可执行文件。Lib是库文
4、件(可以使dll,也可以使使用静态链接的库或是plugin);“SOURCES”里定义了所有的cpp文件;“HEADERS”里定义了所有的h文件;“FORMS”里定义了所有的ui文件(可以在QtCreator中进行可视化编辑的界面类);这里多说一下,ui文件经过qmake之后会生成ui_开头的一个.h文件,里面由程序自动生成一个新的UI类,类里面把可视化编辑的界面元素都用代码写出来。在ui文件对应的类中,这个自动生成的ui类会被new一个新的实例,用于协助开发人员。不知道我说明白了没有,就是ui文件会帮助开发人员生成一些界面相关的代码,然而这些代码是以另一个新的类的成员变量及代码的形式被
5、用于原来那个界面类的。(汗啊,我都说累了)我一直不明白为什么QtCreator不像VC那样直接去修改原有类的代码。难道这个实现起来很困难吗?我打开.ui文件看过,它其实是界面的一个xml文件描述4。忘记在哪里看到这种实现有一个优点就是如果程序界面部分写的足够灵活的话,程序升级时如果只涉及到界面,那么可以只下载这个ui文件进行升级即可。这个特性可能会让那些saas软件开发人员欣喜若狂。但对于大部分desktopapp开发人员来说,还是有点让人迷惑。好在Qt中有signal/slot可用于widget与界面类(如dialog)之间传递消息,否则这种中间加一层“假父类”的实现方式是在是让人难以
6、接受。Pro文件说了这么多,足以说明QtCreator在项目管理与设置上并不是特别友好。与VC(甚至VC6)相比都有较大差距。编辑pro文件使我想起了N年前使用命令行方式编写turboC程序。呵呵,可能开源软件就是这个范儿?关于pro文件,还有很多内容需要开发人员去了解。我会专门写个tip。2.IDE界面VC的界面很经典,多年未发生根本性的改变(但相信很多老VCer对VC6以后的版本取消ClassWizard仍然耿耿于怀)。QtCreator界面比较一般。硬伤是没有类树(ClassTree),这个对于OOP来说非常的不便。由于没有类树,开发人员便不能对类进行相关的编码,这就意味着增加一个
7、memberfunction需要在该类的.h和.cpp文件中手工输入两次函数名称。同时,重载函数时也需比在VC中付出更多的时间。虽然增加一个函数的时间可能只增加5-10秒,但对于刚刚灵感闪现的程序员来说,可能会比较有挫折感。希望后面的版本能够加上。代码输入界面QtCreator做得不错,语法着色(不光有标准C++的着色,还有Qt特有关键字的着色,如SLOT等)和类似VC的intellisense功能(代码自动完成)让人感觉很舒服。我
此文档下载收益归作者所有