【技术应用】Qt Creator使用体会与小技巧

Qtcreator 创建 新文件时名字大小写的设置 Qtcreator 创建 新文件时名字大小写的设置。 阅读详情

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中路径习惯用‘/’。

原文链接:http://blog.youkuaiyun.com/superjoel/archive/2010/02/22/5314225.aspx

QT--基础 Qt 是一个功能强大且易于使用的 C++ 框架,适用于开发跨平台的桌面应用程序、移动应用程序和嵌入式系统。通过 Qt,开发者可以快速构建复杂的用户界面,并利用信号与槽机制实现高效的事件处理。如果你是 Qt 的初学者,建议从简单的 GUI 应用程序开始,逐步学习 Qt 的核心概念和模块。 阅读详情

相关推荐

Qt Creator中配置Opencascade

Qt Creator中配置Opencascade 前言: 由于项目需要使用到STEP、STP文件,还需要三维建模,于是就发现了一个工具。目前网上的资源,专门分享这方面内容的是eryar大佬,大家搭建成功了,可以去大佬的gitHub中下载一个demo来试试。 开发环境: Windows 7 64位操作系统; Qt 5.12.2 MSVC 2017 64位(不要再尝试MinGW编译器了,经过我很久很久很久很久的试验,结果不行,最后在别人的启发下用了MSVC); Opencascade 7.4(这是目前最新

WangKeSiInSiChuan的博客 4643

Qt Creator的下载和安装

Qt和Qt Creator的区别 Qt是C++的一个库,或者说是开发框架,里面集成了一些库函数,提高开发效率。 Qt Creator是一个IDE,就是一个平台,一个开发环境,类似的比如说VS,也可以进行Qt开发,当然VS中的Qt是作为一个插件插入VS平台的。 下载Qt Creator 下载地址1:https://www.qt.io/download 这是官网下载地址,选择开源open sou...

从0开始学编程 10万+

Qt Creator工具介绍与使用

Qt Creator 是一个跨平台的集成开发环境 (IDE),主要用于开发基于 Qt 应用程序的图形用户界面 (GUI) 应用程序。它由 Qt Company 维护,并且与 Qt 库紧密集成。

C/C++Linux、音视频、DPDK 1379

windows下完美的"免费"QT开发环境: QtCreator + VC2008Express

用MSVC编译器的主要原因是因为用到Jrtplib这个库不支持mingW编译器··· --------------- 转载自 azhw QT4.5 后,针对OpenSource 版本的QT, nokia 也直接提供了QT OpenSource for vs2008的编译版本,  越来越方便了,不需要再经过几个小时的自己编译, 或者用破解的Commercial

MichaelSrc的草稿簿 3896

QT与QT Creator的独立安装与配置

集成的QT及QT Creator安装比较easy,本文介绍的是QT和QT Create独立安装的方法,当然,也不是很难。       首先说明一下:QT是一个类库,QTCreator是一个框架。要使用QTCreator这个框架必须先把QT的平台搭建好。这个平台需要什么呢?主要需要以下几样:QT(QT库每个版本都有些许变化,可以根据自己需要选择版本,这里的个人需要并不是指功能,而是指你可以选择的教

佛曰不可说 6220

使用 QT Creator 进行 OpenCL C++ 开发

QT Creator 是一个强大的跨平台 IDE,非常适合开发包含 OpenCL 加速的应用程序。以下是配置和使用 QT Creator 进行 OpenCL C++ 开发的完整指南。

深之JohnChen的专栏 1972

【QT】:QT(介绍、下载安装、认识 QT Creator)

1.1 什么是 QT🔥QT是一个跨平台的 C++ 图形用户界面应用程序框架。它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展。QT为开发者提供了一种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应用程序,同时也可以使用C++语言进行高级开发。所谓框架其实是一个“半成品”,帮助项目搭建“骨架”,并提供丰富的组件库,开发人员只需增加一些内容或调用一些提供好的组件就可以完成系统。

island1314的博客 3万+

windows下QT Creator的配置一

摘要:本文主要介绍基于windows下QT Creator的配置 **关键字:**QT Creator

甘超浩 7068

Qt Creator使用体会与小技巧

        Qt Creator是Qt官方的IDE,这个IDE为Qt编程人员提供了一个完整的开发环境。当然了,这个IDE是用Qt写的,也是免费的。这个IDE真正的编译部分使用了MinGW gcc compiler。也就是说,这个IDE主要的作用是协助开发人员编写代码,并以更加友好的图形界面方式(而不是命令行)使用MinGW。下面我以MS Visual Studio作为参照,讲一些在Window

superjoel的专栏 3万+

Qt Creator 中使用svn进行版本管理

最近做的一个项目是用Qt Creator做的。开发环境在windows7 下。公司有台linux的服务器,上面装了SVN。昨天项目经理要求我把自己的代码上传到那台linux服务器上。没办法,去网上找了好多资料。都没有看到有这方面的文章。那就自己动手研究吧!         刚开始的时候。一点头绪都没有,不知道如何才能将自己电脑里的代码上传到服务器上去。后面想了一个偷懒的办法。先将代码用FileZ

alex川的专栏 2万+

windows sln的qt 工程

windows sln 工程 参考发现是一个sln工程 但是能自动编译qt的代码 不知道怎么做得到的 但是里面的配置是可以参考的 系统不用添加QTDIR,工程添加就可以了 在文件的G:\MMMMEDIA\desktopcaptureccc\testMyDesktop\DesktopTransfer\DesktopTransfer\DesktopTransfer.vcxproj.user 这...

突围 1607

【QT(一)】—— QT Creator的安装与使用

本文介绍了Qt框架的核心特性与安装配置流程。Qt作为跨平台C++开发框架,支持Windows/macOS/Linux等多系统部署,提供GUI组件、网络通信等丰富功能库。安装指南包含官网/镜像源下载路径、账号注册、组件选择(建议全选)及无中文路径配置说明,并详细演示了环境变量设置方法。通过创建空项目案例,展示了Qt Creator的项目模板选择、类信息填写等步骤,解析了自动生成的main.cpp、widget.h等核心文件结构。最后说明运行方式及临时文件生成机制,帮助开发者快速上手Qt开发环境搭建与基础使用。

LH__1314的博客 2536

NMS非极大值抑制算法原理

NMS非极大值抑制算法

pywin 3502

Qt-Qt Creator的下载、安装与配置(Windows)

介绍了Qt Creator的下载、安装和配置,并演示创建初始程序

翟天保的博客 14万+

Jetson Nano官方镜像下载&烧录

在NVIDIA Jetson Nano开发者套件上安装NVIDIA官方Ubuntu镜像

weixin_44222088的博客 8854

告别切换烦恼!用Parallels Desktop的Host-Only网卡,在macOS上直接访问虚拟机里的公司内网

本文详细介绍了如何在macOS上使用Parallels Desktop的Host-Only网卡直接访问虚拟机内的公司内网,告别频繁切换操作系统的烦恼。通过配置Host-Only网络模式,实现主机与虚拟机的安全高效通信,特别适合需要频繁访问内网资源的IT从业者。文章包含分步指南、自动化脚本和常见问题解决方案,帮助用户优化工作流程。

weixin_28739079的博客 364

Qt入门学习——Qt Creator的使用

Qt Creator介绍 通过前面《Qt快速入门(vim纯代码编写)》的学习得知,只有搭建好了 Qt 环境(Qt库和开发工具),即可通过 vim 纯代码编写 Qt 程序,再借助 Qt 里的 qmake 工具编译 Qt 代码,具体流程如下: 1)编写 Qt 代码 2)通过 qmake -project 生成工程文件 3)工程文件中添加所需模块:QT += widgets 4)根据工程文件用 qmake 命令生成 Makefile 5)通过 make 编译代码生成所需可执行程序 6)通过..

顺其自然~专栏 1万+

光学测量仿真软件:Zygo_(5).Zygo的数据处理与分析方法

通过上述综合案例,我们可以看到Zygo中的数据处理与分析方法是如何一步一步应用于实际数据的。从数据导入到预处理,再到滤波、表面分析、缺陷检测和数据可视化,每一步都至关重要,最终确保了数据的准确性和可靠性。处理后的数据还可以导出为多种格式,便于在其他软件中进行进一步的处理或报告。希望这个案例能够帮助您更好地理解和应用Zygo中的数据处理与分析方法。

kkchenjj的博客 947

QT creator使用过程总结

对于初次使用QT来说, 着实有很多坑。这里总结使用QT一周的经验。 1。  安装QT 我是用VS2015 编译环境。 https://www.qt.io/download-open-source/  下载QT5.9.1安装包。  安装过程,会选在 vs2015 x86, vs2015x64,  gw32, 根据自己的情况,选择。 我使用 vs2015  QT plugin,

spark_fountain的专栏 5333

震惊!用刚发布的GPT-5写研究现状,文献综述写作一整个大逆袭(附步骤+10条AI提示词)

每类分别给出:国内重点(3 条)、国外重点(3 条)、代表性方法(2–3 条)、代表成果(各 1–2 条)、主要问题(2 条)。每个场景给出:技术方案(2–3 种)、研究目标、实际成效/案例、当前挑战(3 点)。指令:基于国内外现状,系统列出当前学界的研究空白、关键未解问题与争议焦点(每项配简要证据/示例),并针对每个空白提出 1–2 条可行的研究方向或方法路径。三、差异与研究空白分析(≥300 字)。对每个小节提供:小标题、中心论点(1 句)、拟写要点(3–5 条)、建议引用类型(理论/方法/案例)。

qq_64378896的博客 114

手把手教你学Simulink--基于Simulink的移相全桥DC-DC变换器仿真建模

特点高效性:通过实现零电压开关(ZVS)减少开关损耗。电气隔离:使用变压器提供输入输出间的电气隔离。适用于中高功率应用:如服务器电源、工业电源等。挑战控制复杂度:精确控制相位差以实现软开关。元件选择:合适的电感、电容值对于性能至关重要。动态响应:快速响应负载变化,保持稳定的输出电压。首先明确要模拟的任务内容。设计一个能够支持特定输入输出电压比的PSFB变换器。根据工作频率和谐振元件值确定合适的电路参数。实现有效的控制策略来维持输出电压稳定,并实现软开关。

MHD0815的博客 520

Qt Creator的简单使用方法

本文介绍使用Qt Creator进行C/C++编程的基本方法。

海洋饼干叔叔 1658

世界职业院校技能大赛商贸赛道项目参考逐字稿一

商贸赛道“智选优品”—基于大数据与AI驱动的跨境电商平台项目参考逐字稿您订阅本专栏后即可`永久享有所有文章的查阅权`,希望我们更新的参考资料能帮助到您。如果您需要我们团队赋能培训可联系我(企业一线工程师及国一获奖选手在线培训支持:每周直播精讲(可回放,支持弹幕答疑)、代码Review+技术售后(拉群随时问,12h内响应)、④路演PPT+答辩话术一对一点评,评委视角提前彩排、适合:中职/高职赛项选手、指导老师带队、校企工作室、整校打包另谈(可开发票))

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1589

【Qt初识】使用 Qt Creator 新建项目

工程新建好之后,在工程目录列表中有一个后缀为 “.pro” 的文件, “.pro” 文件就是工程文件 (project),它是 qmake 自动生成的用于生产 makefile 的配置文件。这是一张图片,ocr 内容为:main.cpp源文件这是一张图片,ocr 内容为:解释:Qt 系统提供的标准类名 声明头文件没有 .h 后缀;Qt 一个类对应一个头文件,类名 就是 头文件名;QApplication 为应用程序类;(a为应用程序对象,有且仅有一个。

2402_82670467的博客 1041

【Unity Shader】Special Effects(十二)Glow 外发光(UI)

Properties_GlowColor ("外发光颜色", Color) = (0, 0, 0, 1)_GlowIntensity("外发光强度", Range(0, 1)) = 1参数详解:_GlowColor:外发光颜色,指定外发光的显示颜色。_GlowIntensity:外发光强度,指定外发光的显示强度,0为不可见,1为最强强度。

神码编程 934

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: qt可停靠控件和工具栏(Dock Widgets and Toolbars)
下一篇: 关于QT中显示中文的一些研究
ryanzz
博客等级 码龄19年 7粉丝 2原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值