【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:影子构建,默认选择,这样,构建目录和源码目录可以分开设置。这是个很好的习惯。
编辑器、代码风格等可以选择默认。

项目文件

在这里插入图片描述

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

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

相关文章

【Java 进阶篇】深入理解 JQuery 事件绑定:标准方式

在前端开发中,处理用户与页面的交互是至关重要的一部分。JQuery作为一个广泛应用的JavaScript库,为我们提供了简便而强大的事件绑定机制,使得我们能够更加灵活地响应用户的行为。本篇博客将深入解析 JQuery 的标准事件绑定方式,为…

vue2【axios请求】

1:axios作用 axios(发音:艾克c奥斯)是前端圈最火的,专注于数据请求的库。 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中axios的github:https://github.com/axios/axios 中文官网地址…

【C++】类和对象(7)--友元, static成员

目录 一 友元 1 友元概念 2 友元函数 3 友元类 二 static成员 1 概念 2 用法 3 static成员特性 4 例题 一 友元 1 友元概念 友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以 友元不宜多用。 …

QGIS003:【05高级数字化工具栏】-要素移动、修改、合并操作

摘要:QGIS地图导航工具栏包括激活高级数字化工具、移动要素、旋转要素、缩放要素、简化要素、添加环、添加部件、填充环、删除环、删除部件、重塑要素、偏移曲线、反转线、裁剪/扩展要素、分割要素、分割部件、合并所选要素、合并所选要素的属性、旋转点符号等选项&…

Git配置代理:fatal: unable to access*** github Failure when receiving data from

~吐槽一下 github自从被微软收购以后,大多数情况没点科技上网都进不去了,还是怀念以前随时访问的时光。 我一直都是开着系统代理的,但是今天拉一个项目发现拉不下来了,报错: fatal: unable to access https://githu…

try-with-resources(TWR)方式关闭流资源

使用传统的方式关闭流资源当然没问题,但是需要写的代码有点多,而try-with-resources是Java 7 之后的新语法糖,旨在减轻开发人员释放try块中使用的资源的压力。一时用TWR方式一时爽,一直用一直爽,但是有些情况也是不能使…

HTTP 到 HTTPS 再到 HSTS 的转变

近些年,随着域名劫持、信息泄漏等网络安全事件的频繁发生,网站安全也变得越来越重要,也促成了网络传输协议从 HTTP 到 HTTPS 再到 HSTS 的转变。 HTTP HTTP(超文本传输协议) 是一种用于分布式、协作式和超媒体信息系…

如何零基础自学AI人工智能

随着人工智能(AI)的快速发展,越来越多的有志之士被其强大的潜力所吸引,希望投身其中。然而,对于许多零基础的人来说,如何入门AI成了一个难题。本文将为你提供一份详尽的自学AI人工智能的攻略,帮…

Git企业开发级讲解(五)

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、bug 分⽀二、删除临时分支三、小结 一、bug 分⽀ 假如我们现在正在 dev2 分⽀上进⾏开发…

【数据结构与算法】线性表 - 顺序表

目录 1. 线性表2.顺序表3.顺序表的优缺点4.实现(C语言)4.1 头文件 seqList.h4.2 实现 seqList.c 1. 线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见…

gRPC 的原理 介绍带你从头了解gRPC

gRPC 的原理 什么是gRPC gRPC的官方介绍是:gRPC是一个现代的、高性能、开源的和语言无关的通用 RPC 框架,基于 HTTP2 协议设计,序列化使用PB(Protocol Buffer),PB 是一种语言无关的高性能序列化框架,基于 HTTP2PB 保…

Qt布局技巧

可以先把控件放置了,再选中所有控件右键布局 或者是点击上面的:

cesium雷达效果(脉冲圆)

cesium雷达效果(脉冲圆) 下面富有源码 实现思路 使用ellipse方法加载圆型,修改ellipse中‘material’方法重写glsl来实现当前效果 示例代码 index.html <!DOCTYPE html> <html lang="en"><head>

CronExpression

CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年]序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小时 是 0-23 , - * / 4 日 是 1-31 , - * ? / L W 5 月 是 1-12 or JA…

Matlab群体智能优化算法之海象优化算法(WO)

文章目录 一、灵感来源二、算法的初始化三、GTO的数学模型Phase1&#xff1a;危险信号和安全信号Phase2&#xff1a;迁移&#xff08;探索&#xff09;Phase3&#xff1a;繁殖&#xff08;开发&#xff09; 四、流程图五、伪代码六、算法复杂度七、WO搜索示意图八、实验分析和结…

jbase打印导出实现

上一篇实现了虚拟M层&#xff0c;这篇基于虚拟M实现打印导出。 首先对接打印层 using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using System.Xml;namesp…

探索NLP中的核心架构:编码器与解码器的区别

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

高校教师资格证备考

高等教育制度 关于人的全面发展和个体发展的关系&#xff0c;说法正确的是&#xff08;ABC&#xff09;。 A.个体发展是在全面发展基础上的选择性发展 B.全面发展是个体发展的前提和基础 C.个体发展又是全面发展的动力 D.个体发展是全面发展的前提和基础

什么是缓存雪崩、击穿、穿透?

背景 数据一般是存储于数据库中&#xff0c;数据库中的数据都是存在磁盘上的&#xff0c;磁盘读写的速度相较于内存或者CPU中的寄存器来说是非常慢的了。 如果用户的请求都直接访问数据库的话&#xff0c;请求数量一上来&#xff0c;数据库很容易就崩溃了&#xff0c;所以为了…

html网页设计 01基础标签

<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body> <!-- 标题标签 h1最大 --><h1>最大标签</h1><h2>二级标签</h2><h3>三级标签</h3><…