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

Qt:3.项目创建、对象树、乱码问题、Qt命名规则

目录

1.创建项目:

2.Qt可以支持两套基础类:

3.节点的父子关系和对象树:

4.QLabel类:

5.乱码问题:

6.Qt命名规则:


1.创建项目:

  • qt的项目中有一个以.ui为后缀的文件,他本质是一个xml文件。
  • qt中使用F4切换头文件和对应的源文件。
  • 编写一个项目,有两种实现方式,一种是直接拖拽控件到设计页面,另一种通过纯代码的方式创建控件。
  • 代码构造界面:将代码放到widget的构造函数中。
  • 上古时期的qt使用小写风格的头文件声明风格(后面带.h后缀),在1998年C++标准成立。更改了原来的头文件风格,就是首字母大写,不加.h后缀的头文件风格。
  • 控件可以创建在堆上也可以创建在栈上。建议创建在堆上,建立在堆上时,参数要传递当前this指针,可以给新对象指定其父对象。
  • 以QLabel类举例:创建在堆上:QLabel l1=new QLabel(this);创建在栈上:QLabel l2;

2.Qt可以支持两套基础类:

  • Qt 支持 C++ 的标准模板库(STL),并且 Qt 自己也实现了一套封装库,提供了类似的容器类和算法。这些 Qt 自己的类在很多情况下可以替代 STL,提供了一些额外的功能和更好的集成。
  • Qt 的这些容器类通常与 Qt 的信号和槽机制更好地集成,并且在跨平台应用中有更好的兼容性。建议使用这些 Qt 提供的容器类,而不是 STL 容器。
  • Qt版本的基础类在创建时,要大写Q和类的首字母。以vector举例:std::vectot<int>和QVector<int>。

3.节点的父子关系和对象树:

  • 在Qt中,创建在堆上的对象,即使不手动释放,也不会造成内存泄漏。这些对象会在合适的时候被自动释放掉。原因是:对象被挂在了对象树上。
  • 对象树本质是一个多叉树,它可以将前端界面上的各个元素组织起来。
  • 对象树的各个节点之间会存在父子关系,子对象如果认定一个其他对象为父对象,那么父对象被销毁时,它的所有子对象也会自动被销毁。这种机制确保了资源的自动释放,避免了内存泄漏。
  • 在子对象构造时,通过初始化列表将当前this指针设置为父对象的指针,来建立父子关系。
  • 父对象可以有多个子对象,但每个子对象只有一个父对象。
  • 通常,对象树的根节点是顶级窗口对象或应用程序对象,其他对象则是其子节点。

4.QLabel类:

  • QLabel类,使用包含QLable头文件,使用后会在界面左上角显示QLabel对象包含的字符串。
  • 创建在堆上:QLabel l1=new QLabel(this);
  • 创建在栈上:QLabel l2;
  • 创建好QLabel对象后,设置文本:l1->setText();括号中可以传递一个string的匿名对象;也可以直接传递双引号包括的字符串,原因是有一个重载函数来完成隐式类型的转换。

5.乱码问题:

  • 乱码原因:有且只有一个,编码方式不匹配。
  • 在计算机中,一个汉字占几个字节?这和具体的编码方式有关。目前,表示汉字的字符集主要有两种。
  • 其一是GBK,使用两个字节表示一个汉字。一般windows简体中文版就使用GBK为默认字符集。
  • 其二是UTF-8/utf8,变长编码,根据类型一般2~4个字节不等,但是在utf8中一个汉字一般是3个字节.Linux默认的编码格式就是utf8。
  • 如何查看当前源文件是什么编码格式?将源文件使用记事本打开,打开后另存为,在另存为界面就能够看到当前源文件的编码格式。
  • 解决乱码问题:如果要在Qt Creater中解决日志打印乱码问题,就需要统一编码格式,要么改终端打印日志的编码格式,要么改文件的编码格式。但是终端不好改,源文件主流的中文编码方式是utf8,改掉也不太合适。
  • 想要解决Qt中,终端和文件编码不统一导致的乱码问题,有两种方法:
  • 其一是使用QString对象存储字符串后再使用cout打印,QString对象可以自动处理编码格式;
  • 第二种是使用专门的日志打印工具打印日志—qDebug()对象,QDebug相当于一个Qt中的类,使用要包含头文件<QDebug>,可以将它看作是cout来使用,具体使用格式为:qDebug()<<“字符串”;
  • 后续如果要使用打印日志的方式输出一些调试信息,优先使用qDebug() ,它提供了一个开关,可以一次直接关闭所有调试信息的显示。

6.Qt命名规则:

  • Qt命名规则:驼峰命名,使用单词首字母大写来分割多个单词。
  • 小驼峰:首单词首字母小写,主要给变量/函数来命名。
  • 大驼峰:首单词首字母大写,主要给类命名。
  • 总而言之,代码风格具体怎么定,要入乡随俗,需要确保自己写的代码风格和已有代码的代码风格保持一致。

相关文章:

Qt:3.项目创建、对象树、乱码问题、Qt命名规则

目录 1.创建项目&#xff1a; 2.Qt可以支持两套基础类&#xff1a; 3.节点的父子关系和对象树&#xff1a; 4.QLabel类&#xff1a; 5.乱码问题&#xff1a; 6.Qt命名规则&#xff1a; 1.创建项目&#xff1a; qt的项目中有一个以.ui为后缀的文件&#xff0c;他本质是一个…...

C# 入门—实现 Hello, World!

目录 一、.net 平台 二、.net 都能干什么&#xff1f; 三、.net 两种交互模式 四、使用 VS Code 开发 C# 程序 五、实现 Hello, World! 一、.net 平台 下载 .NET(Linux、macOS 和 Windows) (microsoft.com) .NET 简介 - .NET | Microsoft Learn C# :一种编程语言,可以开…...

【项目实训】前端页面初探索(前期探索)

前期&#xff0c;由于没有确定页面展示形式&#xff0c;于是进行了很多探索 首先安装element-ui 导入elemnt-plus 添加use: 设置一个全局样式 编写导航栏 <el-menu:default-active"activeIndex"class"el-menu-demo"background-color"#95d475&quo…...

机器人控制系列教程之动力学建模(2)

接昨天的推文&#xff1a;https://editor.csdn.net/md/?articleId139991958 &#xff0c;动力学的求解通常是个相对比较复杂的过程&#xff0c;但现在基本上不用人工来推算求解各种公式和求解过程了&#xff0c;大家只需要知道其中的步骤即可&#xff0c;现代对于动力学问题的…...

Golang | Leetcode Golang题解之第200题岛屿数量

题目&#xff1a; 题解&#xff1a; func numIslands(grid [][]byte) int {res : 0for i : 0; i < len(grid); i {for j : 0; j < len(grid[i]); j {if grid[i][j] 1 {resdfs(grid, i, j)}}}return res }func dfs(grid [][]byte, r, c int) {h, w : len(grid), len(gri…...

Linux系统启动流程

init程序类型&#xff1a; ①、SysV&#xff1a;init&#xff0c;centos 5之前&#xff0c;配置文件/etc/init.d/ ②、Upstart: init&#xff0c;centos 6&#xff0c;配置文件/etc/init.d/ /etc/init/ ③、Systemd:Systemd&#xff0c;centos 7&#xff0c;配置文件/usr/li…...

Vue 学习之 axios

目录 执行安装命令&#xff1a;npm install axios 使用的时候导入 axios以data&#xff0c;params&#xff0c;headers传参方式的区别 axios封装 是一个基于 promise 的 网络请求库&#xff0c;作用于浏览器和 node.js 中。使用Axios可以在前端项目中发送各种方式的HTTP请求…...

Python学习笔记17 -- 猜数字小游戏2

目录 一、功能函数 1、说明函数 -- 对游戏玩法及设置进行说明 2、答案函数 -- 生成答案 3、猜测函数 -- 让玩家进行猜测 4、对照函数 -- 将答案和猜测进行对照 4.1 A函数 4.2 B函数 5、结果函数 -- 判断得到结果或继续猜测 6、时间函数 -- 判断一局游戏所用时间 7、打…...

【系统架构设计师】七、信息安全技术基础知识(信息安全的概念|信息安全系统的组成框架|信息加解密技术)

目录 一、信息安全的概念 1.1 信息安全的基本要素和范围 1.2 信息存储安全 1.3 网络安全 二、信息安全系统的组成框架 2.1 技术体系 2.2 组织机构体系 2.3 管理体系 三、 信息加解密技术 3.1 数据加密 3.2 对称加密技术 3.3 非对称加密算法 3.4 数字信封 3.5 信…...

CMMM Plus+ Calculus Update 超级游戏大作 游戏说明

资源链接 Scratch超级生命模拟游戏&#xff1a;CMMMPlusCalculusUpdate.sb3资源-CSDN文库 关卡编辑器 ◽️使用 WASD 移动视图。 ◽️LMB 放置单元格。 ◽️Space LMB 删除单元格。Ctrl Space LMB 删除所有相同类型的单元格。 ◽️Q / E 旋转单元格。 ◽️Z / X 在单元格类…...

Java OA系统任务协作模块

以下是一篇关于构建高效且功能丰富的OA系统任务协作模块的博客文章&#xff0c;采用了Spring Boot、Spring Data JPA和React等主流技术。文章不仅展示了项目的基本实现&#xff0c;还介绍了如何优化代码和增加新的功能&#xff0c;以提升系统的性能和用户体验。 --- ## 构建高…...

深入解析Maven常用命令

目录 什么是 MavenMaven 的安装与配置Maven 项目结构Maven 常用命令 mvn cleanmvn compilemvn testmvn packagemvn installmvn deploymvn sitemvn dependencymvn help 总结 什么是 Maven Maven 是由 Apache 软件基金会开发的一个项目管理和构建工具。它基于项目对象模型&…...

【Docker】镜像

目录 1. 镜像拉取 2. 镜像查询 3. 镜像导出 4. 镜像上传 5. 镜像打标签 6. 镜像上推 7. 镜像删除 8. 镜像运行及修改 8.1 在registry 节点运行 mariadb 镜像&#xff0c;将宿主机 13306 端口作为容器3306 端口映射 8.2 查看容器ID 8.3 进入容器 8.4 创建数据库xd_d…...

力扣最新详解5道题:两数之和三数之和四数之和

目录 一、查找总价格为目标值的两个商品 题目 题解 方法一&#xff1a;暴力枚举 方法二&#xff1a;对撞指针 二、两数之和 题目 题解 方法一&#xff1a;暴力枚举 方法二&#xff1a;哈希表法 三、三数之和 题目 题解 方法一&#xff1a;排序暴力枚举set去重 …...

通讯:单片机串口和电脑通讯

目录 1.串口输出数据到电脑 硬件部分 串口输出数据到电脑的软件软件部分&#xff1a; 相关问题&#xff1a; 2.单片机串口--485--485转USB--电脑 串口&#xff0c;芯片&#xff0c;转换器&#xff0c;设备之间的通讯的接线&#xff0c;都是要TX--RX, RX--TX 交叉连接。 单…...

ubuntu22.04 设置双屏

一 概述 最近把ubuntu18.04 升级到 22.04 双屏显示出来问题&#xff0c;在此记录下解决问题方案。二 解决方案 1 使用命令查看能检测到显示器 xrandr根据输出的信息&#xff0c;我们可以知道 HDMI-0 与 DP-0 是connected 。检测到两个显示器 2 设置输出显示器分辨率 由于我…...

【FPGA-常见问题及解决方案】

1、VIVADO的License无法加载&#xff1a;license文件必须在英文路径&#xff1b; 2、例程代码路径不能过长&#xff0c;也不允许有中文路径&#xff01;&#xff01;&#xff01; 3、明明加载了license&#xff0c;license也正确&#xff0c;例程无法完成综合&#xff1a;这种情…...

【第3章】MyBatis-Plus持久层接口之Service Interface(上)

文章目录 前言一、save1. 示例&#xff08;save&#xff09;2. 示例&#xff08;saveBatch&#xff09;3. 示例&#xff08;saveBatch 指定批次大小&#xff09; 二、saveOrUpdate1.示例&#xff08;saveOrUpdate&#xff09;2.示例&#xff08;saveOrUpdateBatch&#xff09;3…...

Nodemon的入门及使用

nodemon 是一个工具&#xff0c;通过在检测到目录中的文件更改时自动重新启动 Node.js 应用程序来帮助开发基于 Node.js 的应用程序。它非常适合在开发环境中使用。以前&#xff0c;我们开发一个 Node 后端服务时&#xff0c;每次更改文件&#xff0c;都需要手动重启服务才能生…...

cesium 实现三维无人机航拍过程实景效果

需求背景 需要实现一个动态的三维无人机航拍过程实景效果 代码开发中&#xff0c;迭代功能待续... 解决效果 cesium 实现三维无人机航拍过程实景效果 index.vue <template><div><el-button class"btn" click"start">开始</el-butt…...

收藏!AI时代程序员薪资分化严重?3个月转型AI工程,求职成功率提升60%!

文章指出AI时代程序员薪资两极分化&#xff0c;顶级AI人才年薪破亿&#xff0c;而普通开发者求职困难。文章强调这不是行业寒冬&#xff0c;而是结构性变革。建议程序员提升AI工程能力&#xff0c;转型AI工程师&#xff0c;成功案例显示求职成功率提升60%&#xff0c;薪资涨幅3…...

JD-GUI深度解析:Java字节码逆向工程的瑞士军刀

JD-GUI深度解析&#xff1a;Java字节码逆向工程的瑞士军刀 【免费下载链接】jd-gui A standalone Java Decompiler GUI 项目地址: https://gitcode.com/gh_mirrors/jd/jd-gui 在Java开发的世界里&#xff0c;我们常常需要面对只有字节码没有源码的困境——第三方库的调试…...

企业级应用awesome-stock-resources:商业项目合规使用终极指南

企业级应用awesome-stock-resources&#xff1a;商业项目合规使用终极指南 【免费下载链接】awesome-stock-resources :city_sunrise: A collection of links for free stock photography, video and Illustration websites 项目地址: https://gitcode.com/gh_mirrors/aw/awe…...

如何使用Android Sunflower构建可预测UI:掌握单向数据流的终极指南

如何使用Android Sunflower构建可预测UI&#xff1a;掌握单向数据流的终极指南 【免费下载链接】sunflower A gardening app illustrating Android development best practices with migrating a View-based app to Jetpack Compose. 项目地址: https://gitcode.com/gh_mirro…...

【限时解密】Google内部测试版Gemini插件Beta通道开放倒计时——附3个已验证的早期功能入口及Token获取密钥

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Gemini Chrome浏览器插件的演进脉络与Beta通道战略意义 Gemini Chrome 插件自 2023 年底首次公开测试以来&#xff0c;已历经三次重大架构重构&#xff1a;从初始的轻量级内容注入脚本&#xff0c;演进…...

ESP8266+STM32远程控制实战:如何通过华为云中转指令与数据

ESP8266STM32远程控制实战&#xff1a;华为云物联网全链路开发指南 在智能家居和工业监控领域&#xff0c;远程设备控制一直是核心技术痛点。当ESP8266遇上STM32&#xff0c;再通过华为云物联网平台搭建通信桥梁&#xff0c;这个组合能爆发出怎样的生产力&#xff1f;本文将带您…...

用emWin定时器在STM32上做个简易秒表:从对话框UI到后台逻辑的完整实现

用emWin定时器在STM32上实现高精度秒表&#xff1a;从UI设计到多任务协同的工程实践 在嵌入式GUI开发中&#xff0c;精确的时间控制往往决定着用户体验的成败。当我们需要在STM32平台上实现一个毫秒级响应的秒表应用时&#xff0c;emWin的窗口管理器定时器(WM_TIMER)便成为连接…...

如何用wxlivespy实现微信视频号直播数据实时抓取与分析

如何用wxlivespy实现微信视频号直播数据实时抓取与分析 【免费下载链接】wxlivespy 微信视频号直播间弹幕信息抓取工具 项目地址: https://gitcode.com/gh_mirrors/wx/wxlivespy wxlivespy是一款专业级的微信视频号直播间弹幕信息抓取工具&#xff0c;能够实时捕获弹幕、…...

【必收藏】2026年大模型学习全指南|小白程序员入门捷径,抓住百万年薪红利

2026年的AI行业&#xff0c;机遇早已从风口走向实锤——应用层依旧是那片肉眼可见的黄金赛道&#xff01;从大厂技术布局到招聘市场风向标&#xff0c;所有信号都在一致指向&#xff1a;大模型应用开发&#xff0c;已然成为程序员突破职业瓶颈、实现薪资跃升的核心赛道。 字节跳…...

实战 | 性能瓶颈无处遁形,揭秘 mPaaS 全链路压测的落地策略与调优秘籍

1. 从性能焦虑到精准定位&#xff1a;为什么需要全链路压测&#xff1f; 第一次接手移动应用性能优化项目时&#xff0c;我盯着监控大屏上跳动的红色警报线手足无措。用户投诉像雪片般飞来&#xff1a;"支付页面卡死"、"图片加载转圈半分钟"、"活动页…...