30天学会QT(进阶)--------------第二天(创建项目)

1、如何规范的创建一个项目

      由于本人也是从其他的项目上学来的,所以也不算是业界规范,每个公司或者个人都有自己的方式去创建项目,项目的创建是本着简洁,明了,方便而言的,所以对于我来说,不繁琐,利于后期维护和移植,也算是一个规范的项目创建。

      规范的项目创建要求:

    1、简洁

    2、方便移植

    3、方便

       这里也只说自己的个人经验。

2、创建项目环境以及使用规则

    编译方式:qmake

    项目:pro文件,pri文件以及其他

     项目创建最好的方式其实是cmake方式,qt6以及全面支持cmake方式,但是cmake组建需要一定的学习时长,平时多用qmake,qmake在6版本据说有bug,官方建议使用cmake。

3、如何创建以及使用步骤 

        对于qt一般创建方式,那是入门就差不多知道了,个人觉得不太方便,这是进阶的,自然而言还是要有一点规范的。

       不足之处,多多包涵。

     对于一个项目,我一般会新建一个文件夹,文件夹可以自己去命名,我一般是xxxSystem,注意QT的路径并不支持中文,所以不能放在中文路径下。

这个目录下,我会放入三个文件夹

第一个放的是debug模式下,生成的exe程序以及包含让exe执行的所有库文件以及其他资源,简而言之,在这个文件夹下,直接点开exe是可以直接运行的。

第二个放的是项目文件,包含源码以及其他。

第三个是realease模式下,直接点开exe是可以直接运行的,与第一个类似。

有时候我也会多加一个文件夹,也就是四个,主要放文件资源

点开之后就是这样

第一个文件夹:DebugKSsystem

第二个文件夹pro

第三个文件夹 realeaseKSsystem   与第一个类似

第四个文件夹  我一般放一些协议对接的文件,pdf,Word文档等等,主要就是放这个项目相关的文件。

完成这些就可以创建项目了。

主要就是关于pro文件的命令:

添加这部分命令:

CONFIG(debug, debug|release) {
    DESTDIR = $$_PRO_FILE_PWD_/../../DebugKSsystem
} else {
    DESTDIR =$$_PRO_FILE_PWD_/../../realeaseKSsystem
}

这部分就是最后生成的exe放入的目录下

PWD代表的是:相对于pro文件的相对路径目录

为什么要这样写,就是为了方便打包程序。

找到对应版本的黑框框,我一般用的是这个msvc 2019  64bit编译器,所以

点开就是这样

现在的路径一般是安装qt的路径,一般我喜欢一步到位,不喜欢分两步进行,

可以举个例子,现在我这个目录下,只有exe

windeployqt  E:\qt_new515\qt_newKSsystem\realeaseKSsystem\KSsystem.exe执行这个命令就会自动帮你把衔接库文件自动打包好

之后,要把可执行程序给其他人用,就直接打包文件夹就行,就很方便。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nginx启动闪退

在nginx目录下cmd,nginx -t,找到原因是:“在端口80上运行NGINX时,因为端口80是HTTP默认端口,需要管理员权限才能访问” 所以修改端口号: 在nginx.conf文件中,修改listen:80为8080 …

【漏洞复现】网康科技 NS-ASG 应用安全网关 SQL注入漏洞(CVE-2024-2330)

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

2024年 JavaScript 最新功能一览

前言 随着 Web 技术的日新月异,JavaScript 也在不断地吸收新的特性和技术,以满足日益复杂和多样化的开发需求。在 2024 年,JavaScript 迎来了一系列令人瞩目的新功能,这些功能不仅提升了开发者的效率,也极大地丰富了 …

无缝集成 MongoDB Relational Migrator,Tapdata 提供关系型到 MongoDB 实时迁移优化方案

在去年的 MongoDB 用户大会纽约站上,MongoDB 正式宣布全面推出新工具 MongoDB Relational Migrator(MongoDB RM),用以简化应用程序迁移和转换——即从传统关系型数据模型到现代的文档数据模型,助力组织快速提升运营效率…

Seata源码流程图

1.第一阶段分支事务的注册 流程图地址:https://www.processon.com/view/link/6108de4be401fd6714ba761d 2.第一阶段开启全局事务 流程图地址:https://www.processon.com/view/link/6108de13e0b34d3e35b8e4ef 3.第二阶段全局事务的提交 流程图地址…

考研失败, 学点Java打小工——Day2

1 关键字 标识符 基本数据类型 感觉和C没啥区别  1.1 关键字    public、static、void…  1.2 标识符    ①不能用关键字    ②由字母、数字、下划线、$组成,但是不能以数字开头    ③给变量起名字的时候要起有意义的名字:“见名知意” 1.…

常青内容与病毒式内容——哪个更适合 SEO?

常青内容是经得起时间考验的内容,而病毒式内容则是利用特定时代潮流的内容。 如果你曾经考虑过为网站添加内容,你可能听说过常青内容和病毒式内容这两个词。这两个词涵盖了网站所需的基本内容类型。 那么,这两者之间有什么区别?…

综合实验---Web环境搭建

题目: 服务器IP地址规划:client:12.0.0.12/24,网关服务器:ens36:12.0.0.1/24、ens33:192.168.10.1/24,Web1:192.168.10.10/24,Web2:192.168.10.20/24&#xf…

【网络安全】漏洞挖掘入门教程(非常详细)

温馨提示: 初学者最好不要上手就去搞漏洞挖掘,因为漏洞挖掘需要很多的系统基础知识和一些理论知识做铺垫,而且难度较大…… 较合理的途径应该从漏洞利用入手,不妨分析一些公开的CVE漏洞。很多漏洞都有比较好的资料,分…

(学习日记)2024.03.09:UCOSIII第十一节:就绪列表

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

mqtt mosquitto 资料

MQTT 3.1.1 协议中文版 | MQTT中文网mqtt中文网http://mqtt.p2hp.com/mqtt311MQTT Version 3.1.1http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718009 mqttclient: 一个基于socket API之上的跨平台MQTT客户端,拥有非常简洁的API接口…

CVE-2023-38836 BoidCMSv.2.0.0 后台文件上传漏洞

漏洞简介 BoidCMS是一个免费的开源平面文件 CMS,用于构建简单的网站和博客,使用 PHP 开发并使用 JSON 作为数据库。它的安装无需配置或安装任何关系数据库(如 MySQL)。您只需要一个支持PHP 的Web服务器。在 BoidCMS v.2.0.0 中存…

水库泄洪监测预警系统解决方案

一、方案概述 近年来由于危险河道管理措施不到位,调峰水库泄水风险长期存在,信息通报制度缺失以及民众安全警觉性不高等因素导致的水库泄洪时冲走下游河道游客以及人民财产的事故频发。水库安全度汛是全国各地防汛抗洪的重中之重,而水库泄洪监…

【PyTorch][chapter 22][李宏毅深度学习]【无监督学习][ WGAN]【理论二】

前言: 本篇主要参考《Wasserstein GAN and the Kantorovich-Rubinstein Duality》 重点介绍一下 WGAN 的损失函数 是如何通过 Wasserstein Distance 变换过来的。 分为5步: 我们首先建立Wasserstein Distance 极小值形式, 经过对…

Linly-Talker智能数字人实时对话系统如何部署体验

环境: Linly-Talker 问题描述: Linly-Talker智能数字人实时对话系统如何部署体验 Linly-Talker 是一个智能 AI 系统,它将大型语言模型 (LLMs) 与视觉模型相结合,创造出一种新颖的人机交互方式。它集成了…

【HTML】1px边框与1px分割线

对比图 箭头标注的是处理过的 1px分割线 使用transform的scaleY进行缩小 码 <div class"mini-heriz"></div><br><div style"border: solid 1px black; width: 300px;height: 1px;"></div> <style> .mini-heriz {wi…

Linux编程4.2 网络编程-协议

1、为什么要有协议&#xff1f; 计算机网络中实现通信必须有一些约定&#xff0c;如对速率、传输代码、代码结构、传输控制步骤和出错控制等约定&#xff0c;这些约定即被称为通信协议。在两个节点之间要成功地进得通信&#xff0c;两个节点之间必须约定使用共同的“语言”&am…

MySQL用法---MySQL Workbench创建数据库和表

1. 连接数据库 打开软件&#xff0c;点击左下角卡片&#xff0c;输入设置的数据库密码&#xff0c;勾选单选框 2. 了解主页面的组成部分 3. 创建数据库 先点击工具栏的创建按钮 再输入数据库名称 点击 Apply 创建 4. 创建数据表 展开数据库&#xff0c;在Tables上右键&…

如何在WordPress网站上设置多语言展示

在今天的全球化世界中&#xff0c;拥有多语言网站对于吸引更广泛的受众至关重要。前不就我们遇到Hostease的客户咨询我们的在线客服&#xff0c;他想要对他的wordpress网站支持多语言。我们提供给客户可以尝试以下的插件来支持多语言。 在本教程中&#xff0c;我们将逐步介绍如…

cpp qt 一个奇怪的bug

今天在用cpp qt的时候发现了一个奇怪的东西 这是我的源代码 #include "mywidget.h" #include <QPushButton>myWidget::myWidget(QWidget *parent): QWidget(parent) {QPushButton * btn1 new QPushButton;btn1->show();btn1->setParent(this);btn1-&g…