Qt的基本操作

在这里插入图片描述

文章目录

  • 1. Qt Hello World 程序
    • 1.1 通过图形化界面的方式
    • 1.2 通过代码的方式实现
  • 2. Qt 的编码问题
  • 3. 使用输入框实现hello world
  • 4. 使用按钮实现hello world
  • 5. Qt 编程注意事项
  • 6. 查询文档的方式
  • 7. 认识Qt坐标系

1. Qt Hello World 程序

在这里插入图片描述

1.1 通过图形化界面的方式

我们先讲解第一种方式,用图形化界面的方式,我们先打开widget.ui进入Qt designer:
在这里插入图片描述
进入之后,我们可以拖拽Label这个控件:
在这里插入图片描述
然后我们可以拉伸这个控件,敲出我们的hello world
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
然后在我们的widget.ui中就有我们的Label标签:
在这里插入图片描述
此时在setupUi里就有了lable的相关设置:
在这里插入图片描述

1.2 通过代码的方式实现

我们先打开widget.cpp:
在这里插入图片描述
那么我们需要在这里面去构建我们的Label:
在这里插入图片描述
可以看到出现了错误,因为Qt中每个类都有对应的同名头文件。我们需要包含头文件:
在这里插入图片描述
创建对象的时候,我们可以在堆上创建,也可以直接在栈上创建。但是建议在堆上创建更好
在这里插入图片描述
给当前的对象指定一个父对象,让这个对象知道自己在哪。
在这里插入图片描述
这里的QString是什么呢
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上述代码,在Qt中不会产生内存泄漏,label对象会在合适的时候自动被析构释放。之所以能把对象释放掉,主要是因为把这个对象挂到了对象树上。对象树主要是一个N叉树,把界面上的各种元素组织起来了。
在这里插入图片描述
假设我们要布局一个这样的界面,那么它的对象树如下:
在这里插入图片描述
使用对象树,把这些内容组织起来,最主要的目的,就是为了能够在合适的时机(窗口关闭/销毁),把这些对象统一进行释放
在这里插入图片描述
所以,我们更加建议通过new的方式创建对象,也就是把这个对象的生命周期交给Qt的对象树来统一管理。如果这个对象是在栈上创建,就可能会存在一些"提前释放"的问题

2. Qt 的编码问题

在这里插入图片描述
可以看到,当析构打印的时候,它是乱码的。
在计算机中,一个汉字,占几个字节?
对于这个问题,只要你回答出一个具体的数字,就一定是错的。因为中文编码有很多种。计算机存的是二进制数字,英文字母可以用一个ASCII码表来表示:规定了每个字符,都有一个对应的数字来表示。
那么中文我们也是采用了一个大表格,给每个汉字,分配一个整数。

字符集:表示汉字的字符集,其实有很多种的。不同的字符集,表示同一个汉字,使用的数字不相同
在这里插入图片描述
在这里插入图片描述
可以看到这个文件采用的是UTF-8来进行编码的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在就可以正常打印了。
在这里插入图片描述
在这里插入图片描述

3. 使用输入框实现hello world

在这里插入图片描述
因为只打印hello world所以,使用单行编辑器就行。
在这里插入图片描述
我们把这个控件拖拽就可以编辑了。
在这里插入图片描述
右边可以修改这个编辑框的属性。
在这里插入图片描述
在这里插入图片描述

代码的方式:
在这里插入图片描述

4. 使用按钮实现hello world

在这里插入图片描述
在这里插入图片描述
但是这里点击没有反应,需要和信号槽机制相关。
在这里插入图片描述
在Qt中,需要使用一个叫做connect函数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
比如在上面的widget.ui中,有一个属性:
在这里插入图片描述
在这里插入图片描述
下面进行一个演示:
在这里插入图片描述
这样的代码就可以进行按钮的切换。
在这里插入图片描述
在这里插入图片描述
代码方法:
在这里插入图片描述
在这里插入图片描述

5. Qt 编程注意事项

Qt 偏好驼峰命名法:
在这里插入图片描述
举个例子:
在这里插入图片描述
Qt Creator 中的快捷键:
在这里插入图片描述

6. 查询文档的方式

打开帮助⽂档有三种⽅式:
在这里插入图片描述
在这里插入图片描述
3、找到 Qt Creator 的安装路径,找到 assistant.exe,双击打开;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. 认识Qt坐标系

在这里插入图片描述
在计算机中的坐标系,X向右增加,Y向下增加。
在这里插入图片描述
举个例子:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里坐标的单位是像素。
在这里插入图片描述
在这里插入图片描述
这里我们也可以设置窗口的位置。

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

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

相关文章

Vue3中 状态管理器 ( Pinia ) 详解及使用

传送门: Vue中 状态管理器(vuex)详解及应用场景 传送门:Pinia 中文文档 注意:本文项目使用脚手架为 Vite; 1. 前言 Pinia 对比 Vuex Pinia 同时支持 Vue2 以及 Vue3 ,这让同时使用两个版本的…

现货白银投资热度推升因子

白银作为一种贵金属,其投资价值会受到多种因素的影响。在一些特殊的情况下,现货白银作为具有高杠杆的白银替代投资方式,会成为热门的投资工具,大受市场的追捧,本文将为大家介绍一下相关情况。 通常当全球的经济面临不确…

【Linux】进程间通信——共享内存

文章目录 共享内存的概要创建共享内存shmget()参数keyshmget()参数sizeshmget()参数shmflg 删除共享内存挂载共享内存去关联 共享内存的概要 共享内存允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间传递数据的一种非常有效的方式。不同进程之间…

【ArcGIS Pro二次开发】(81):玩个花活_控规指标块生成

一、要实现的效果 废话不多说,这次要实现的是类似控规指标块的标注: 这里只是示例,用了5个格子,做成9个格子也是可以的。 实现这个效果最关键的是要用到Pro中的复合标注。 关于复合标注的用法可以搜一下帮助里的【使用复合注释…

【区块链技术开发语言】在ubuntu18 系统环境下命令操作安装GO语言开发环境

要在Ubuntu 18系统上安装GO语言开发环境,您可以按照以下步骤进行: 打开终端(Ctrl + Alt + T)。 使用以下命令下载GO语言安装包: 或者手动打开链接下载: wget https://golang.org/dl/go1.17.5.linux-amd64.tar.gz确保替换链接中的版本号为最新版本。 解压下载的安装包…

yolov8源码解读Detect层

yolov8源码解读Detect层 Detect层解读网络各层解读及detect层后的处理 关于网络的backbone,head,以及detect层后处理,可以参考文章结尾博主的文章。 Detect层解读 先贴一下全部代码,下面一一解读。 class Detect(nn.Module):"""YOLOv8 …

【EndNote20】Endnote20和word的一些操作

文章目录 前言一、如何导入参考文献到EndNote201.1.在谷歌学术或知网上下载文献1.2.将下载好的文件导入EndNote20(可批量导入)1.3.书籍如何导入 二、Word中加入参考文献 前言 做毕设时学习了EndNote20的一些使用方法,并在此慢慢做汇总。 一、如何导入参考文献到End…

【python】python入门之输入与进入交互模式的方法

目录 一次性输入(进入交互模式): 输入函数: 一次性输入(进入交互模式): 交互模式介绍:写一行读一行,不用print也可以显示出来 (当进行某些一次性计算或者纠错…

在石家庄有哪家券商证券公司可以免费开量化软件Ptrade、QMT

在石家庄有少数证券公司可以免费开量化软件QMT、Ptrade,如国金证券、广发证券等,之前要100万才可开通,现在只需满足资金50万的条件即可免费办理使用,详情找客户经理孙经理咨询。 证券佣金低价标准是“成本价”,默认佣金…

多线程——

目录 一、为什么要有多线程? 1、线程与进程 2、多线程的应用场景 3、小结​编辑 二、多线程中的两个概念(并发和并行) 1、并发 2、并行 3、小结 三、多线程的三种实现方式 1、继承Thread类的方式进行实现 2、实现Runnable接口的方…

为什么有的代理IP速度比较慢?

“为什么有的IP代理速度比较慢?”随着数字化时代的不断发展,代理服务成为了许多网络操作的关键环节。然而,有时我们可能会遇到IP代理速度慢的问题,这可能会对我们的网络操作产生影响。让我们一起揭开这个谜团,探寻其中…

EMQX Enterprise 5.4 发布:OpenTelemetry 分布式追踪、OCPP 网关、Confluent 集成支持

EMQX Enterprise 5.4.0 版本已正式发布! 新版本提供 OpenTelemetry 分布式追踪与日志集成功能,新增了开放充电协议 OCPP 协议接入能力,并为数据集成添加了 Confluent 支持。此外,新版本还进行了多项改进以及 BUG 修复&#xff0c…

AI提示工程实战:从零开始利用提示工程学习应用大语言模型【文末送书-19】

文章目录 背景什么是提示工程?从零开始:准备工作设计提示调用大语言模型 实际应用示例文字创作助手代码生成持续优化与迭代数据隐私与安全性可解释性与透明度总结 AI提示工程实战:从零开始利用提示工程学习应用大语言模型【文末送书-19】⛳粉…

SpringMVC 的参数绑定之list集合、Map

标签中name属性的值就是pojo类的属性名 参数绑定4 list [对象] <form action"teaupd.do" method"post"> <c:forEach items"${list}" var"tea" varStatus "status"> 教师编号&#xff1a;<input…

希尔排序算法

目录 ShellSort希尔排序 整体思路 图解分析 【1】预排序 单组排序 多组并排 【2】直接插入排序 关于gap取值 总代码实现 时间复杂度 ShellSort希尔排序 希尔排序法又称缩小增量法。 希尔排序法的基本思想是&#xff1a;先选定一个整数&#xff0c;把待排序文件中所有…

Vue3快速上手(七) ref和reactive对比

一、ref和reactive对比 表格形式更加直观吧&#xff1a; 项目refreactive是否支持基本类型支持不支持是否支持对象类型支持支持对象类型是否支持属性直接赋值不支持&#xff0c;需要.value支持是否支持直接重新分配对象支持&#xff0c;因为操作的.value不支持&#xff0c;需…

120 Linux C++ 通讯架构实战 nginx整体结构,nginx进程模型,nginx调整worker进程数量,nginx重载配置文件,热升级,关闭

一 nginx整体结构 1.1 master进程和worker进程概览&#xff08;父子关系&#xff09; 启动nginx&#xff0c;看到了master进程和 worker 进程。 ps -ef | grep nginx 第一列&#xff1a;进程所属的用户id 第二列&#xff1a;进程ID&#xff0c;也叫做PID&#xff0c;用来唯…

@arco.design Modal renderContent 增加样式

方式一&#xff1a;通过 h 函数 import { h } from vueMessage.error({content: () > {return h(div, {}, [手机号 , h(span, { style: { color: red } }, staffPhone), 已存在])}, })方式二&#xff1a;通过 jsx 方式 注意&#xff1a;lang 需要改为 jsx 或者 tsx <s…

OSQP文档学习

OSQP官方文档 1 QSQP简介 OSQP求解形式为的凸二次规划&#xff1a; x ∈ R n x∈R^n x∈Rn&#xff1a;优化变量 P ∈ S n P∈S^n_ P∈Sn​&#xff1a;半正定矩阵 特征 &#xff08;1&#xff09;高效&#xff1a;使用了一种自定义的基于ADMM的一阶方法&#xff0c;只需…

关于Sora的一些紧迫问题...

OpenAI Sora 概述 OpenAI最新的创新&#xff0c;Sora&#xff0c;在人工智能领域开辟了新的天地。Sora是一个文本到视频的扩散模型&#xff0c;可以将文本描述转化为逼真的视频内容。它解决了一个重大的技术挑战&#xff0c;即在视频中保持主体的一致性&#xff0c;即使它们暂…