1.QT-第一个程序 Hello QT , 以及QT creator介绍 1.第一个程序 -Hello QT首先写main.cpp:#include QApplication #include QMainWindow #include QPushButton int main(int argc, char* argv[]) { QApplication a(argc, argv); // Qapplication表示一个应用程序,而它的成员函数exec()则用来执行程序以及消息处理 QMainWindow w; //定义一个QmainWindow主窗口对象w QPushButton b(w); //通过w,在主窗口上定义QpushButton按钮对象b b.setText(Hello QT!); //通过b对象的成员函数setText(),设置按钮名字为Hello QT w.show(); //显示主窗口 return a.exec(); //通过exec()执行程序以及消息处理 }2.win平台上,命令行编译进入main.cpp所在目录“1.Hello QT”,输入:qmake -project //通过-project参数,将源码生成(*.pro)工程文件 qmake //根据工程文件生成makefile make //根据makefile进行编译,生成debug文件夹接下来,进入debug文件,运行1.exe:如果想删除配置make clean //删除配置文件,如果想再次编译,只需要make即可 make distclean //删除配置文件以及make,如果想再次编译,可以通过qmake和make3.linux平台上,命令行编译同样输入:qmake -project //通过-project参数,将源码生成(*.pro)工程文件 qmake //根据工程文件生成makefile make //根据makefile进行编译,生成可执行文件运行:4.使用Qt creator编译注意:构建项目时,如果出现以下问题,则可能环境变量未设置好,或者环境变量的qt路径前面有 “(” 或 “)” 字符,从而导致:Interrupt/Exception caught code 0xc00000fd5.调试调试分为两种5.1 打印调试头文件#include QDebug比如打印5,代码里输入:qDebug()5;5.2 断点调试除了设置普通断点外,还可以设置条件断点(指程序满足条件,将会暂停)如下图所示,在第17行处设断点:然后设置17行处的断点的条件为i3:开始调试从打印处可以看到,代码运行到i3时便暂停了:6.QT creator介绍构建(bulid)对项目中所有文件进行编译,最终生成可执行程序Debug版用来进行调试的版本,程序中会包含调试信息,所以运行效率低Release版最终发布的版本,无调试信息,运行效率高QT Creator工程介绍.pro项目描述文件介绍语法号你可以把等号左边的类型理解为变量等号右边的理解为值。号你可以把左边的理解为变量列表右边的为需要加到列表中的值。\号可以分行书写但仍为一行。头文件目录、库文件导入、输出文件目录、pri导入# 头文件目录 INCLUDEPATH $$PWD/../../include # 库文件导入 LIBS -L$$PWD/../../lib/win64 -lavformat # 输出目录 DESTDIR $$PWD/../../win/x64/ # pri导入 include(./common/modbusTest/modbusRtu.pri)常用命令# 打印输出 message($$QT_ARCH) # 打印常量字符串 message(hello)字符串匹配 contains和find( 注意:{大括号必须跟在字符后面 )opt $$find(QMAKESPEC,msvc2015_64) isEmpty(opt){ # 没找到,为32位 } !isEmpty(opt){ # 找到,为64位 } contains(QT_ARCH, x86_64) { # 为64位 }else{ # 为32位 }QT用来加载什么模块,比如:QT core gui QT network greaterThan(QT_MAJOR_VERSION, 4): QT widgetsTEMPLATE模板变量告诉qmake为这个应用程序生成哪种makefileapp - 建立一个应用程序的makefile。这是默认值所以如果模板没有被指定这个将被使用。 lib - 建立一个库的makefile。 vcapp - 建立一个应用程序的Visual Studio项目文件。 vclib - 建立一个库的Visual Studio项目文件。 subdirs - 这是一个特殊的模板它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。{}变量# win平台 win32 { } # Mac平台 macos { } # Linux平台 linux { } # msvc编译器(这里是设置源码为utf-8(默认为gbk)) msvc{ QMAKE_CFLAGS -source-charset:utf-8 QMAKE_CXXFLAGS -source-charset:utf-8 }区分debug和releaseCONFIG(debug, debug|release) { message(debug) } else { message(release) }DEFINES 定义宏(可以提供给源文件获取宏定义)DEFINES VER_V1 # 等价于 #define VER_V1 #下面是定义宏字符串 DEFINES APP_NAME1\\\Multi_Tool\\\ # 等价于 #define APP_NAME1 Multi_Tool DEFINES APP_NAME2$$shell_quote(\Multi Tool\) # 字符串如果带有 空格需要使用shell_quote转换才行通过上面的学习,我们就能看懂下面的.pro项目描述文件了:QT core gui #添加core和gui模块(QT不仅只涉及显示模块,还有数据库,多线程,网络等等) greaterThan(QT_MAJOR_VERSION, 4): QT widgets #如果当前版本大于4.0,则需要widgets模块 TARGET HelloWorld #以win平台为例,生成的程序为:HelloWorld.exe TEMPLATE app #声明编译出来的是app程序,而不是库文件 INCLUDEPATH E:/BCC/include \ #指定头文件路径 E:/VC/include SOURCES Main.cpp \ #源文件 HelloWorld.cpp HEADERS HelloWorld.h #头文件名 FORMS HelloWorld.ui #指定界面描述文件 RC_FILE MyIco.rc #指定资源文件,比如图片 LIBS -LE:/vlc-1.11/sdk/lib #指定外部库 CONFIG warn_on debug #构建debug版本,并输出警告信息 # # if debug option is set for CONFIG # CONFIG(debug) { #如果CONFIG有debug选项 DEFINES DEBUG_LOG #则定义: #define DEBUG_LOG SOURCES DebugLog.cpp #并添加debug相关文件 HEADERS DebugLog.h }注意:QT Creator生成的.pro.user文件,包含的是与平台相关的配置信息,与我们无关,不需要修改该文件移植项目时需要删除.pro.user这个文件,需要时,再由QT Creator自动生成即可.3QT MingGW版本可以在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方运行时库。大量文章资源、技术学习交流1群760631646、交流2群693036968(本专栏文章相关源码免费,入群获取,并且不定时上传资源和文章源码)

相关新闻

最新新闻

Word Copilot「初稿生成」提示词优劣对比

Word Copilot「初稿生成」提示词优劣对比

用Copilot写方案、通知、汇报,写出来空洞、流水账、没结构,全是提示词太随意导致!同样是从零写文档,一句话差距,输出质感天差地别。 示例一 新手垃圾提示词(无效):帮我写一份业务工作…

2026/8/14 21:41:52
YOLO模型部署踩坑实录:ONNX转换、TensorRT编译、推理加速常见问题

YOLO模型部署踩坑实录:ONNX转换、TensorRT编译、推理加速常见问题

YOLO模型从训练到落地,部署是最后一公里,也是坑最密集的环节。很多开发者都遇到过类似的问题:训练集上mAP很高,导出部署后精度直接跳水;本地跑的好好的,换到生产环境编译各种报错;单帧测速很快&…

2026/8/14 21:41:52
系统化增强AI代码助手:构建理解项目上下文的智能编程伙伴

系统化增强AI代码助手:构建理解项目上下文的智能编程伙伴

1. 项目概述:当代码助手遇上系统化增强如果你和我一样,深度使用过 Claude Code 这类AI代码助手,大概率经历过一个“蜜月期”后的阵痛。初期,它确实能帮你快速生成代码片段、解释复杂逻辑,效率提升肉眼可见。但用久了&a…

2026/8/14 21:41:52
Rust重写PHP虚拟机:AI辅助的底层引擎重构实践

Rust重写PHP虚拟机:AI辅助的底层引擎重构实践

这次我们来看一个非常硬核的开源项目:用 Rust 语言重写 PHP 虚拟机,并且大量借助了 AI 辅助开发。这不是一个简单的语法转换器,而是一个旨在从底层重新实现 PHP 核心执行引擎(Zend VM)的探索性工程。对于关心编程语言实…

2026/8/14 21:41:52
三步搞定Wand体验升级:开源增强工具Wand-Enhancer上手指南

三步搞定Wand体验升级:开源增强工具Wand-Enhancer上手指南

三步搞定Wand体验升级:开源增强工具Wand-Enhancer上手指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 上周朋友跟我吐槽&#xff1…

2026/8/14 21:41:52
Litellm供应链入侵实战复盘:漏洞检测、环境排查与机密兜底方案

Litellm供应链入侵实战复盘:漏洞检测、环境排查与机密兜底方案

2026年3月24日发生的Litellm供应链投毒事件,是近年影响范围最广、危害最隐蔽的AI生态供应链攻击。不同于常规的服务器漏洞入侵、Web漏洞爆破,这次攻击精准瞄准企业研发核心命脉——CI/CD构建环境。攻击者仅用40分钟的有效攻击窗口,就窃取了24…

2026/8/14 21:36:51