三、Qt Creator 使用

关于Qt的安装及环境配置,在我的上一篇《二、QT下载、安装及问题解决(windows系统)》已经讲过了。

本章节有一个重点,在新建 工程文件时,所在路径不要有中文,否则编译及运行程序不能正常运行。

在使用Qt Creator(以下简称QT)前,请先做好心里准备,假如你用过宇宙第一IDE VS的话,那么Qt Creator其实并不好用,我刚开始用时,甚至感觉还不如Delphi 的IDE好用,尤其是从UI文件转到CPP文件,为什么就不能点esc按键直接从UI文件转到对应的CPP文件呢?但是用习惯了,也就那么回事吧,不就是多点两下鼠标吗:),言归正传,下边我们来介绍Qt Creator。

从下图可以看出,Qt常用的功能区域还是比较简洁明了的。

功能区1,是我们开发时最常用的,包括编辑窗体的UI,修改CPP代码,还有项目的编译配置,都在功能区1中。

功能区2,可以切换程序的编译类型,debug下可以单步调试,Release下可以编译成最终的发布版本,两者的区别,大家在初学时,只需要记住,Release编译完的程序在性能方面要比debug编译的程序性能更优。就可以了,深入的区别,我们会在以后的章节中介绍。

功能区3,打开项目、新建项目,工具->选项->Kits,是最常用的。

接下来我们新建一个带窗体的demo程序。

点击区域3中的“文件”,“新建文件或项目”,会弹出以下的窗体。

在此窗体中选择Application->Qt Widgets Application(基于Qt部件的应用程序)。

点击完choose按钮,会进入到以下的界面。Test2是工程项目名称,下边的是工程文件保存路径。

点击下一步,默认qmake。

点击下一步,进入创建主窗体界面,class name是类名,base class是此窗体的基类,分为三种:主窗体、部件、对话框。Header file为头文件,Source file为代码文件,Form file为窗体文件,这些默认就可以,点击 下一步 。

在下边的窗体中选择编译器,我选择的是MinGW 32-bit编译器,当然,你也可以选择其他编译器,我的编译还有MSVC2017 64bit和mingw53_32(安装Qt5.7版本时带的编译器)。

点击 完成按钮 ,至此,新建项目完成。进入main.cpp代码页,main.cpp里的代码是整个项目启动的主函数所在。从箭头处都可以导航到main.cpp,完成不同的工程文件之间的切换。

我们先什么代码也不要改,看一下编译完成的路径在哪个文件夹下,可以点击左侧的“项目”。

在下图的路径下,我们就可以看到编译完成的exe所在。

点击左下的绿色三角按钮,也可以通过ctrl+R按键,运行编译一个debug版的exe。

至此,我们的第一个带窗体的exe,就运行成功了。

生成的exe想要独立运行,需要注意两点:

1、生成的exe不能单独双击运行,因为缺少运行时依赖的库,即可以在QT里运行,但不能单独双击运行此exe。

2、生成的exe是不能脱离本机运行环境的,不能拿到另一台没有QT的电脑上运行,也运行不起来。这一点和delphi不一样,delphi如果用的都是原生的东西,只会生成一个exe文件,并且生成的exe拿到别的电脑上是可以正常运行的,这也是delphi的所谓的唯一的优点,即一次编译,到处运行,QT生成的exe拿到另一台电脑运行不起来的原因是,Qt的exe运行时依赖一些Qt的动态库。

如果想单独双击运行exe,需要使用windeployqt.exe来“打包”程序,也就是自动检查你生的exe文件所依赖的Qt库,并且把这些库放到跟exe同级的文件夹下。然后双击exe就可以正常运行了,windeployqt.exe是安装Qt时自带的,我们也会在以后的章节中来详细介绍windeployqt.exe的使用方法。

如果运行失败,出现如下图中的错误,请检查环境变量是否配置正确。具体请参考上一篇https://blog.csdn.net/zhouhui1982/article/details/135550949

如果出现以下错误,请检查Kits 编译器是否正确。也是具体请参考上一篇《二、QT下载、安装及问题解决(windows系统)》。

在下一篇章节中,会给大家讲解main.cpp里的主函数,及在窗体上拖拽控件,实现一些简单的功能。

《写在最前边》icon-default.png?t=N7T8https://blog.csdn.net/zhouhui1982/article/details/135550465

《一、QT的前世今生》icon-default.png?t=N7T8https://blog.csdn.net/zhouhui1982/article/details/135550566

《二、QT下载、安装及问题解决(windows系统)》icon-default.png?t=N7T8https://blog.csdn.net/zhouhui1982/article/details/135550949

      《三、Qt Creator使用》 icon-default.png?t=N7T8https://blog.csdn.net/zhouhui1982/article/details/135565568

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/620765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【电源专题】案例:ADC有两个量程,为什么选小量程而不用大量程?

案例背景:早期其他产品设计使用大量程3V ADC,但是外部的分压配置最大电压分压后仅仅只到1.6V左右,无法用到3V ADC量程。其主要原因是供应商提供说越往大量程走误差值越大,但正常的设计应该是要达到接近满量程(如文章:【电子通识】案例:采用电阻分压式采样电压的设计注意…

[GN] nodejs16.13.0版本完美解决node-sass和sass-loader版本冲突问题

项目场景: npm install 运行vue项目时候 问题描述 项目场景:sass-loader ,node-sass出错 ! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: smoore-mes-web1.4.0 npm ERR! Found: webpack3.12.0 npm ER…

极简云源码已经开源

源码介绍 极简云已经开源 解绑卡密 查询卡密 总体来说还是很完善的 对接例子网盘里有 用户注册需要配置邮箱 上网页QQ邮箱标准版开启SMTP 然后生成授权码 后台发信邮箱里填就对了 实在不会配置邮箱的 可以下载网盘里的reg.php 把reg.php上传源码里的user目录 之后注册就不需要…

【操作系统】在阅读论文:OrcFS: Orchestrated file system for flash storage时需要补充的基础知

在阅读论文:OrcFS: Orchestrated file system for flash storage是需要补充的基础知识 这篇论文是为了解决软件层次之间的信息冗余问题 To minimize the disk traffic, the file system buffers the updates and then flushes them to the disk as a single unit, …

[脚本]油猴脚本简单入门

安装 科学上网后直接在谷歌商店安装 官方文档地址 文档地址 编写脚本 油猴自带的编译器非常不好用,不想麻烦配置编译器建议直接把内容拷贝到VSCode中进行编辑。 // UserScript // name New Userscript // namespace http://tampermonkey.net/ // v…

python爬虫02-requests库使用01

目录 1、requests库简介 2、requests库-安装 3、requests库-使用 3.1 导入模块 3.2 发送请求 3.3 requests库常用方法 3.4 访问控制参数kwargs 4、请求返回对象 Response 5、requests访问时的可能异常 1、requests库简介 requests是一个http的第三方请求库&#xff0…

Seata TC端协调全局事务

1、Seata server注册器 //来自RM分支事务注册 super.registerProcessor(MessageType.TYPE_BRANCH_REGISTER, onRequestProcessor, messageExecutor); //开启全局事务 super.registerProcessor(MessageType.TYPE_GLOBAL_BEGIN, onRequestProcessor, messageExecutor); //提交全…

QEMU源码全解析 —— PCI设备模拟(9)

接前一篇文章: 上一回介绍了虚拟机如何通过北桥的MMIO来读写PCI设备的配置空间。PCI设备的配置空间中有MMIO的地址,也就是BAR信息,里面存放有BAR的基址,虚拟机可以通过读写这些BAR来与设备通信。然而,QEMU在设备初始化…

crackmapexec工具详解

下载地址:https://github.com/Porchetta-Industries/CrackMapExec wiki:https://www.crackmapexec.wiki/ 1.安装(MAC) 1.1.python3.9 pipx 安装(运行软件有警告,推荐 python3.11 pipx 安装) …

记录下载安装rabbitmq(Linux) 并整合springboot--详细版(全)

下载rabbitmq(Linux): erlang压缩包: https://share.weiyun.com/TGhfV8eZ rabbitMq-server压缩包: https://share.weiyun.com/ZXbUwWHD (因为RabbitMQ采用 Erlang 实现的工业级的消息队列(MQ)服务器&#…

五、带登录窗体的demo

做了一个简单的带登录窗体的demo,有用户名和密码不能为空的验证,原理是在main.cpp的主函数入口处: 1、将默认的MainWindow主窗体注释。 2、新建一个formlogin登录窗体,在主函数中先运行登录窗体。 3、在登录窗体中引用MainWind…

Redis学习指南(7)-Redis的字符串类型介绍

字符串类型特点 Redis的字符串类型是一种简单而灵活的数据结构,其特点如下: 任意数据类型: 字符串类型可以存储任意数据,包括文本、二进制数据等。直接访问和修改: 可以直接通过键名访问和修改整个字符串,而不需要像其他数据结构…

C++ 并发编程 | 管理线程

一、管理线程 1、启动线程 线程是通过构造std::thread对象来开始的&#xff0c;该对象指定了线程上要运行的任务&#xff0c;std::thread可以与任何可调用类型一起工作&#xff0c;例如&#xff1a; #include <iostream> #include <thread> using namespace std;v…

LeetCode第152题 - 乘积最大子数组

题目 解答 public class Solution {public int maxProduct(int[] nums) {if (nums null || nums.length 0) {return 0;}if (nums.length 1) {return nums[0];}int max nums[0];int min nums[0];int res nums[0];for (int i 1; i < nums.length; i) {int tmp max;m…

【算法题】51. N 皇后

题目 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方案。 …

ZZULIOJ 1126: 布尔矩阵的奇偶性

题目描述 一个布尔方阵具有奇偶均势特性&#xff0c;当且仅当 每行、每列总和为偶数&#xff0c;即包含偶数个1。如下面这个4*4的矩阵就具有奇偶均势特性&#xff1a; 1 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 编写程序&#xff0c;读入一个n阶方阵并检查它是否具有奇偶均势特性。如果…

杨中科 .NETCORE EFCORE 第一部分 基本使用

一 、什么是EF Core 什么是ORM 1、说明: 本课程需要你有数据库、SOL等基础知识。 2、ORM: ObjectRelational Mapping。让开发者用对象操作的形式操作关系数据库 比如插入: User user new User(Name"admin"Password"123”; orm.Save(user);比如查询: Book b…

mac上部署单体hbase

1. 简介 HBase 是一个开源的、分布式的、版本化的典型非关系型数据库。它是 Google BigTable 的开源实现&#xff0c;并且是 Apache 基金会的 Hadoop 项目的一部分1。HBase 在 Hadoop Distributed File System (HDFS) 上运行&#xff0c;作为一个列式存储非关系数据库管理系统…

yolov8在进行目标追踪时,model.track()中persist参数的含义

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Unity 面试篇|(五)热更新与Lua语言篇 【全面总结 | 持续更新】

目录 1.什么是热更新&#xff1f;2.主流的代码热更方案有哪些&#xff1f;3.AssetBundle介绍4.AssetBundle的具体开发流程5.AssetBundle的压缩格式6.AssetBundle对象的加载方式7.ssetBundle资源卸载8.资源如何打包&#xff1f;依赖项列表如何生成&#xff1f;9.如何解析版本文件…