【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,一经查实,立即删除!

相关文章

【Linux 源码阅读记录】设备树解析 of 相关代码

前言 最近移植接触 Linux 的设备树解析相关的代码,对 Linux of (open firmware)设备树解析代码比较感兴趣。 可以通过阅读Linux 大量的优秀代码,增强一些编程与编码的技巧与经验 切入点 of_device_is_available :设…

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

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

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

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

c++ binary_semaphore 使用详解

c binary_semaphore 使用详解 std::binary_semaphore c20 头文件 #include <semaphore>。作用&#xff1a;二进制信号量&#xff0c;轻量同步元件&#xff0c;能控制对共享资源的互斥访问。 std::binary_semaphore 成员函数 release&#xff1a;增加内部计数器并解除…

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(列表数据的展示)

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

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

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

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

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

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

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

leetcode字符串必刷题——反转字符串、反转字符串 II、反转字符串中的单词、找出字符串中第一个匹配项的下标、重复的子字符串

文章目录 反转字符串反转字符串 II反转字符串中的单词找出字符串中第一个匹配项的下标重复的子字符串 反转字符串 题目链接 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必…

前端语言报错

1. 语法错误&#xff08;Syntax Errors&#xff09; 这是由于代码不符合语法规则而引起的错误&#xff0c;通常在代码编译阶段发生。示例&#xff1a; javascriptCopy code if (x 10 { // 缺少了右括号 // 代码逻辑 } 2. 类型错误&#xff08;Type Errors&#xff09; 这…

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

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

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

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

【佳学基因检测】在LARAVEL中如何使用和设置路由组

【佳学基因检测】在LARAVEL中如何使用和设置路由组 在设计面向基因检测客户的动态网页和API中&#xff0c;基因检测人工智能常常使用LARAVEL网站框架。Laravel中&#xff0c;路由组&#xff08;Route Groups&#xff09;是一种用于组织和管理路由的方法。通过使用路由组&#…

【MySql密码爆破脚本】用于其他爆破工具无法使用的情况下

1、脚本 #!/bin/bash# 脚本参数 username$1 # MySQL用户&#xff08;或字典路径&#xff09; password$2 # MySQL密码&#xff08;或字典路径&#xff09; task_num${3:-32} # 并发数&#xff0c;默认 32# 检查参数是否存在 if [ -z "$username" ] || [ -z "…

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

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

centos 6.10 安装 perl 5.14

下载安装包 运行下面命令&#xff1a; wget http://www.cpan.org/src/5.0/perl-5.14.2.tar.gz也可以直接下载好安装包&#xff0c;再拷到虚拟机 安装 执行下面命令 tar -xvzf perl-5.14.2.tar.gz #解压安装包 cd perl-5.14.2 ./Configure -des -Dprefix/usr/local/perl ma…

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;…