当前位置: 首页 > news >正文

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向下增加。
在这里插入图片描述
举个例子:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里坐标的单位是像素。
在这里插入图片描述
在这里插入图片描述
这里我们也可以设置窗口的位置。

相关文章:

Qt的基本操作

文章目录 1. Qt Hello World 程序1.1 通过图形化界面的方式1.2 通过代码的方式实现 2. Qt 的编码问题3. 使用输入框实现hello world4. 使用按钮实现hello world5. Qt 编程注意事项6. 查询文档的方式7. 认识Qt坐标系 1. Qt Hello World 程序 1.1 通过图形化界面的方式 我们先讲…...

信号系统之数据压缩

1 数据压缩策略 表 27-1 显示了对数据压缩算法进行分类的两种不同方法。在(a)中,这些方法被归类为无损或有损(lossless or loss)。无损技术意味着恢复的数据文件与原始文件相同。这对于许多类型的数据是绝对必要的,例如:可执行代码、文字处理…...

第二篇【传奇开心果微博系列】Python微项目技术点案例示例:成语接龙游戏

传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目目标二、雏形示例代码三、扩展整体思路四、玩家输入示例代码五、成语判断示例代码六、回答判断示例代码七、电脑判断示例代码八、游戏结束示例代码九、界面优化示例代码十、扩展成语库示例代…...

国内AI大模型主要有哪些

ChatGPT火爆后不到一个月的时间,阿里、华为、腾讯、京东、字节、360、商汤、科大讯飞等大厂纷纷下场,或官宣入场或亮相大模型。我国对生成式AI实行监管的正式法规主要是2023年8月正式施行的《生成式人工智能服务管理暂行办法》。 据不完全统计&#xff…...

RabbitMQ保证消息的可靠性

1. 问题引入 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: 生产者发送的消息未送达exchange消息到达exchange后未到达queue MQ宕机&…...

【工作实践-02】实验室移动端—跳转页面及交互

一、跳转页面不关闭当前页,与uniapp头部导航栏的返回按钮效果相似 uni.navigateBack({delta: 1}) 二、返回页面并刷新 1. 返回上一页时重新获取列表(调用上一页面获取列表方法) let pages getCurrentPages(); // 当前页面let beforePage pages[pages.length - 2…...

HTTP 请求 400错误

问题 HTTP 请求 400错误 详细问题 客户端发送请求 public static UserInfo updateUserInfo(UserInfo userInfo) {// 创建 OkHttpClient 对象OkHttpClient client new OkHttpClient();// 创建请求体MediaType JSON MediaType.parse("application/json; charsetutf-8&…...

C语言---指针进阶

1.字符指针 int main() {char str1[] "hello world";char str2[] "hello world";const char* str3 "hello world.";const char* str4 "hello world.";if (str3 str4){//常量字符串在内存里面是无法修改的,所以没必要…...

QT-通信编码格式问题

这里写目录标题 一、项目场景1.QT客户端与服务端通信时,转化步骤如下:2.原数据示例3.转化后数据 二、问题描述1.采用Soap协议2.采用HTTP协议 三、原因分析四、解决方案 一、项目场景 1.QT客户端与服务端通信时,转化步骤如下: 1&…...

一文了解Web3.0真实社交先驱ERA

Web2时代,少数科技巨头垄断了全球近60亿人口的网络社交数据,并用之为自己牟利,用户无法掌控个人数据,打破该局面逐渐成为共识,于是,不少人看到了Web3社交赛道蕴含的巨大机遇,标榜着去中心化和抗…...

微前端(qiankun)vue3+vite

目录 一、什么是微前端 二、主应用接入 qiankun 1.按照qiankun插件 2.注册微应用引用 3.挂载容器 三、微应用接入 qiankun 1.vite.config.ts 2.main.ts ps:手动加载微应用方式 ps:为什么不用 iframe 一、什么是微前端 微前端是一种多个团队通过独…...

根据Ruoyi做二开

Ruoyi二开 前言菜单代码生成新建微服务网关添加微服务的路由 vue页面和对应的js文件js中方法的url和controller中方法的url总结 前言 之前写过一篇文章,若依微服务版本搭建,超详细,就介绍了怎么搭建若依微服务版本,我们使用若依就…...

DockerFile的应用

DockerFile的应用 一、介绍1 构建的三步骤2 构建的过程 二、常用命令三、DockerFile案例1 创建DockerFile文件2 使用DockerFile文件构建镜像3 启动容器并验证 四 DockerFile添加数据卷 一、介绍 DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成…...

爬虫入门一

文章目录 一、什么是爬虫?二、爬虫基本流程三、requests模块介绍四、requests模块发送Get请求五、Get请求携带参数六、携带请求头七、发送post请求八、携带cookie方式一:放在请求头中方式二:放在cookie参数中 九、post请求携带参数十、模拟登…...

2024-02-16 web3-区块链-keypass记录

摘要: 2024-02-16 web3-区块链-keypass记录 文档: Introduction - Keypass Docs What is KEYPASS? - Keypass Docs What is KEYPASS? KeyPass Wallet is a new smart contract wallet that provides a secure and customizable registration…...

使用 JMimeMagic 在 Java 中识别文件类型

在 Java 中,我们可以使用 JMimeMagic 库来识别文件类型,尤其是在需要准确区分文件类型时。下面是一个简单的使用 JMimeMagic 的示例代码。 添加依赖 首先,在你的项目中添加 JMimeMagic 依赖。你可以在 Maven 项目中的 pom.xml 文件中加入以…...

yolov8源码解读Detect层

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

(AtCoder Beginner Contest 341)(A - D)

比赛地址 : Tasks - Toyota Programming Contest 2024#2&#xff08;AtCoder Beginner Contest 341&#xff09; A . Print 341 模拟就好了 &#xff0c; 先放一个 1 , 然后放 n 个 01 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout…...

python Flask与微信小程序 统计管理

common/models/stat/StatDailyMember.py DROP TABLE IF EXISTS stat_daily_member;CREATE TABLE stat_daily_member (id int(11) unsigned NOT NULL AUTO_INCREMENT,date date NOT NULL COMMENT 日期,member_id int(11) NOT NULL DEFAULT 0 COMMENT 会员id,total_shared_count …...

光伏企业助力乡村振兴

光伏是一种利用太阳能生产电能的发电技术&#xff0c;属于可再生能源。近年来我国的光伏企业发展迅速&#xff0c;已经称霸全球&#xff0c;同时也为乡村振兴贡献了力量。 一、光伏企业助力乡村 1.推动农业发展 光伏发电和农业种植、畜牧、渔业、水产等有机结合&#xff0c;…...

OpenSSH ssh-agent CVE-2023-38408 漏洞修复实战指南

1. 这个漏洞不是“修个配置就能好”的那种——它藏在ssh-agent的共享库加载机制里OpenSSH-ssh-agent CVE-2023-38408&#xff0c;光看编号你可能觉得是又一个常规权限提升补丁。但实际动手前我翻了三天源码才意识到&#xff1a;这不是改几行配置、重启服务就能闭环的问题。它直…...

DeepXDE终极指南:5分钟快速掌握科学机器学习神器

DeepXDE终极指南&#xff1a;5分钟快速掌握科学机器学习神器 【免费下载链接】deepxde A library for scientific machine learning and physics-informed learning 项目地址: https://gitcode.com/gh_mirrors/de/deepxde 还在为复杂的偏微分方程求解而头疼吗&#xff1…...

FigmaCN:3分钟破解设计师的语言障碍,工作效率提升40%的秘密武器

FigmaCN&#xff1a;3分钟破解设计师的语言障碍&#xff0c;工作效率提升40%的秘密武器 【免费下载链接】figmaCN 中文 Figma 插件&#xff0c;设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而烦恼吗&#xff1f;每次…...

比系统自带强在哪?深度体验WizTree v4.16:磁盘分析老手的新选择

WizTree v4.16&#xff1a;重新定义磁盘空间分析的效率革命当你的C盘突然亮起红色警告&#xff0c;或是发现SSD剩余空间以每天1GB的速度神秘消失时&#xff0c;大多数人的第一反应是打开Windows自带的磁盘清理工具。但真正经历过数据洪流洗礼的IT老手&#xff0c;往往会默默启动…...

OFDM同步避坑指南:STO和CFO估计,选ML还是Classen算法?看这篇就够了

OFDM同步算法实战指南&#xff1a;如何在高干扰环境中选择最优STO/CFO估计方案无线通信工程师在设计OFDM系统时&#xff0c;往往会在同步环节遇到一个关键抉择&#xff1a;面对复杂的信道环境和严苛的性能要求&#xff0c;究竟该选择哪种同步算法组合&#xff1f;这个问题没有标…...

虚拟化与加密环境下勒索软件检测的IO模式识别与模型泛化实践

1. 项目概述&#xff1a;当勒索软件检测遇上虚拟化与加密在存储安全领域&#xff0c;勒索软件检测一直是个“猫鼠游戏”。传统的检测方法&#xff0c;尤其是那些依赖文件熵值&#xff08;Entropy&#xff09;突变的方案&#xff0c;在过去几年里确实立下了汗马功劳。其原理很直…...

集合卡尔曼滤波结合机器学习代理模型的长期精度理论分析与实践

1. 项目概述&#xff1a;当集合卡尔曼滤波遇上机器学习代理模型在气象预报、海洋环流模拟乃至地质勘探这些领域&#xff0c;我们常常面临一个核心挑战&#xff1a;如何从充满噪声的、不完整的观测数据中&#xff0c;准确地推断出复杂动力系统的真实状态&#xff1f;这就像是在一…...

基于共享潜在空间的贝叶斯优化:解决异构算法超参数联合选择难题

1. 项目概述与核心挑战在机器学习项目的落地过程中&#xff0c;我们常常面临一个看似简单实则复杂的选择&#xff1a;面对一个具体的数据集&#xff0c;究竟该用哪个算法&#xff0c;以及这个算法的最佳超参数组合是什么&#xff1f;这个问题&#xff0c;在学术上被称为“联合算…...

HuMAL:用人类注意力指导Transformer,提升NLP模型性能

1. 项目概述&#xff1a;当机器学会“看重点”在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;Transformer模型及其核心的注意力机制&#xff0c;无疑是过去几年里最耀眼的技术突破。无论是BERT在理解上下文时的精准&#xff0c;还是GPT系列在生成文本时的流畅&…...

Redis分布式锁进阶第五十六篇

Redis分布式锁进阶第二十五篇&#xff1a;联锁深度拆解 多资源交叉死锁根治 复杂业务多级加锁绝对有序方案一、本篇前置衔接 第二十四篇我们完成了全系列终局复盘&#xff0c;整理了故障排查SOP与企业级落地铁律。常规单资源锁、热点分片锁、隔离锁全部讲透&#xff0c;但真实…...