【Qt开发流程】之HelloWorld程序

【Qt开发流程】之HelloWorld程序

      • 目的
      • 编写程序
        • 新建项目
        • 文件说明及界面设计
      • 程序运行及发布
        • 程序运行
        • 程序发布
          • 手动构建
          • 使用windeployqt进行构建
      • 设置应用程序图标
      • 修改快捷键
      • 类型列表
      • 命令行编译程序
      • 命令行编译.ui文件
      • 自定义类
      • 项目模式及项目文件介绍
        • 项目模式
        • 项目文件

目的

HelloWorld程序说起,项目创建、运行、发布过程;
将项目分解,从单一的主函数文件,到使用图形界面.ui文件,再到自定义C++类和Qt图形界面类。

编写程序

显示HelloWorld文本,这虽然是一个简单的程序,但却包含了一个程序的基本要素。一个复杂程序有的要素,它也具备。
在这里插入图片描述

新建项目
  1. 选择项目模板,使用Ctrl+N快捷键弹出以下
    在这里插入图片描述
  2. 输入项目信息,名称不能为中文,就标识符, 路径不可为中文
    在这里插入图片描述
  3. 套件选择,默认
    在这里插入图片描述
  4. 输入类信息
    在这里插入图片描述
  5. 汇总信息
    在这里插入图片描述
  6. 完成后,创建项目成功
    在这里插入图片描述
文件说明及界面设计

右键,选择在文件夹中打开
在这里插入图片描述
在这里插入图片描述
以上文件说明:

  • .pro:项目文件,包含项目相关信息
  • .pro.user:包含与用户有关的项目信息
  • .h:头文件
  • .cpp:源文件
  • main.cpp:入口
  • .ui:可以使用设计师进行界面设计
    在这里插入图片描述

程序运行及发布

程序运行
  1. 编译、构建
    点击小锤子或者Ctrl+B进行编译、构建。
    在这里插入图片描述

  2. 查看构建生成的文件
    生成makefile、及debug和release(根据模式进行中间文件生成)文件夹。
    在这里插入图片描述
    .o文件是中间文件
    helloWorld就是可执行程序,双击运行。
    在这里插入图片描述

  3. 运行
    双击运行。可能会缺少库,需要配置环境变量,将Qt的bin目录添加到环境变量,或者加所依赖的库添加到可执行程序所在目录。

程序发布
手动构建

选择release模式,进行构建,然后将所需的库添加到可执行程序所在目录。

使用windeployqt进行构建

在这里插入图片描述
进入exe所在目录。
运行命令:windeployqt helloWorld.exe
在这里插入图片描述
复制所需库,双击exe可以运行
在这里插入图片描述

设置应用程序图标

  1. 创建.ico文件
    创建一个.ico文件
    在这里插入图片描述
  2. 修改.pro文件
    在这里插入图片描述
  3. 重新构建
    此时,左上角图标已改变。
    在这里插入图片描述

修改快捷键

在这里插入图片描述

类型列表

在这里插入图片描述

命令行编译程序

前面我们使用QtCreator进行程序编译,下面使用命令行编译程序:

  1. 新建目录,手动创建qt工程目录
  2. 使用记事本创建main.cpp文件
  3. 使用命令行编译
    qmake -project命令,生成.pro文件,然后在.pro文件中添加以下代码
    QT += core gui
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
  4. 使用qmake命令生成用于编译的makefile文件
  5. 使用mingw32-make命令编译程序
  6. 进入exe目录,使用命令helloworld.exe运行程序

命令行编译.ui文件

命令:uic -o ui_helloworld.h helloworld.ui

自定义类

可以自定义类,实现其基类没有的功能。

在这里插入图片描述

项目模式及项目文件介绍

项目模式

按快捷键Ctrl+5,或者点击
在这里插入图片描述
可以设置构建版本,debug或release版本,还可以设置Qt版本。
Shadow build:影子构建,默认选择,这样,构建目录和源码目录可以分开设置。这是个很好的习惯。
编辑器、代码风格等可以选择默认。

项目文件

在这里插入图片描述

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

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

相关文章

通过bat脚本控制Oracle服务启动停止

1、将Oracle服务全部设置为手动启动 初始安装Oracle之后服务启动状态: 2、服务功能介绍 3、构建服务启动/停止bat脚本 注意:编码选择ANSI(如果编码不是ANSI运行脚本会显示乱码) echo off :main cls echo 注:请保证该脚本是使用管理员权限…

Iceberg学习笔记(1)—— 基础知识

Iceberg是一个面向海量数据分析场景的开放表格式(Table Format),其设计的目的是解决数据存储和计算引擎之间的适配的问题 表格式(Table Format)可以理解为元数据以及数据文件的一种组织方式,处于计算框架&…

Java —— 抽象类和接口

目录 1. 抽象类 1.1 抽象类概念 1.2 抽象类语法与特性 1.3 抽象类的作用 2. 接口 2.1 接口的概念 2.2 接口的语法规则与特性 2.3 实现多个接口(解决多继承的问题) 2.4 接口间的继承 2.5 抽象类和接口的区别 2.6 接口的使用实例 2.7 Clonable 接口和深拷贝 2.7.1 Cloneable接口 …

探索arkui(2)--- 布局(列表)--- 1(列表数据的展示)

前端开发布局是指前端开发人员宣布他们开发的新网站或应用程序正式上线的活动。在前端开发布局中,开发人员通常会展示新网站或应用程序的设计、功能和用户体验,并向公众宣传新产品的特点和优势。前端开发布局通常是前端开发领域的重要事件,吸…

Apache Airflow (八) :DAG任务依赖设置

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…

44、echarts图形自动轮播tooltip提示,并显示高亮

自动轮播方法 参数myChart代表echarts的实例名称, options指定图表的配置项和数据, num类目数量(原因:循环时达到最大值后,使其从头开始循环), time轮播间隔时长 //自动轮播显示高亮--tooltip提示 export function autoHover(myChart, option, num, ti…

【漏洞复现】IP-guard WebServer 远程命令执行

漏洞描述 IP-guard是一款终端安全管理软件,旨在帮助企业保护终端设备安全、数据安全、管理网络使用和简化IT系统管理。互联网上披露IP-guard WebServer远程命令执行漏洞情报。攻击者可利用该漏洞执行任意命令,获取服务器控制权限。 免责声明 技术文章仅供参考,任何个人和…

2024年软件测试面试必看系列,看完去面试你会感谢我的!!

朋友圈点赞的测试用例 功能测试 1点赞后是否显示结果 2.点赞后是否可以取消; 3.点赞取消后是否可以重复点赞; 4.共同好友点赞后,是否有消息提醒; 5.非共同好友点赞后,是否有消息提醒; 6.点击点赞人昵称,是否可以跳转到他/她的主页; 7.自己能…

Spring IOC/DI和MVC及若依对应介绍

文章目录 一、Spring IOC、DI注解1.介绍2.使用 二、Spring MVC注解1.介绍2.使用 一、Spring IOC、DI注解 1.介绍 什么是Spring IOC/DI? IOC(Inversion of Control:控制反转)是面向对象编程中的一种设计原则。其中最常见的方式叫做依赖注入(…

【考研】数据结构(更新到顺序表)

线性表的定义和基本操作 学习目标 线性表定义&#xff1a;具有相同数据类型的n个数据元素的有序序列。 顺序表定义&#xff1a; 特点 基本操作 定义 静态&#xff1a; #include<stdio.h> #include<stdlib.h>#define MaxSize 10//静态 typedef struct{int …

Sonar生成PDF错误Can‘t get Compute Engine task status.Retry..... HTTP error: 401

报错及修改&#xff1a; 报错&#xff1a;INFO: Can’t get Compute Engine task status.Retry… org.sonarqube.ws.connectors.ConnectionException: HTTP error: 401, msg: , query: org.apache.commons.httpclient.methods.GetMethod7a021f49 ERROR: Problem generating PD…

K8S基础笔记

1、namespace 名称空间用来对集群资源进行隔离划分&#xff0c;默认只隔离资源&#xff0c;不隔离网络k8s默认的名称空间为default 查看k8s的所有命名空间 kubectl get namespace 或者 kubectl get ns 创建名称空间 kubectl create ns 名称 或使用yaml方式 编写yamlkub…

Linux---(七)Makefile写进度条(三个版本)

文章目录 一、前提引入&#x1f397;️下面的代码什么现象&#xff1f;&#x1f397;️下面的代码什么现象&#xff1f; 二、缓冲区三、回车换行&#x1f397;️注意&#x1f397;️图解&#x1f397;️老式回车键造型&#xff08;意思是充当两个动作&#xff09;&#x1f397;…

【Python】给定n个十六进制正整数,输出它们对应的八进制数。

3.问题描述 给定n个十六进制正整数&#xff0c;输出它们对应的八进制数。 样例输入 2 39 123ABC 样例输出 71 4435274 n int(input()) li [] # 创建列表 for i in range(n):li.append(input()) # 输入数据 for num in li:if len(num) < 100000: # 判断长度是否符…

Spring IOC - Bean的生命周期之依赖注入

在Spring启动流程中&#xff0c;创建的factoryBean是DefaultListableBeanFactory&#xff0c;其类图如下所示&#xff1a; 可以看到其直接父类是AbstractAutoireCapableBeanFactory&#xff0c;他主要负责完成Bean的自动装配和创建工作。 具体来说&#xff0c;AbstractAutowire…

计算机网络———ipv6简解

文章目录 1.前言&#xff1a;2. ipv6简单分析&#xff1a;2.1.地址长度对比2.2. ipv6包头分析2.3. ipv6地址的压缩表示&#xff1a;2.3. NDP&#xff1a;2.4. ipv6地址动态分配&#xff1a; 1.前言&#xff1a; 因特网地址分配组织)宣布将其最2011年2月3日&#xff0c;IANA (In…

Unity--互动组件(Scrollbar)||Unity--互动组件(DropDown )

此组件中的&#xff0c;交互&#xff0c;过渡&#xff0c;导航与文章&#xff08;Unity--互动组件&#xff08;Button&#xff09;&#xff09;中的介绍如同&#xff1b; handle rect&#xff1a;&#xff08;父节点矩形&#xff09; 用于控件的滑动“句柄”部分的图形&#xf…

11.16~11.19绘制图表,导入EXCEL中数据,进行拟合

这个错误通常是由于传递给curve_fit函数的数据类型不正确引起的。根据你提供的代码和错误信息&#xff0c;有几个可能的原因&#xff1a; 数据类型错误&#xff1a;请确保ce_data、lg_data和product_data是NumPy数组或类似的可迭代对象&#xff0c;且其元素的数据类型为浮点数。…

mybatisPlus的简单使用

封装实体类 编写Mapper service层 controller层

[python]python筛选excel表格信息并保存到另一个excel

目录 关键词平台说明背景所需库1.安装相关库2.代码实现sourcetarget1 关键词 python、excel、DBC、openpyxl 平台说明 项目Valuepython版本3.6 背景 从一个excel表中遍历删选信息并保存到另一个excel表 所需库 1.openpyxl &#xff1a;是一个用于读写 Excel 文件的 Pyt…