Qt编程基础:认识常用的基本类型

【从零开始学习QT】Qt 概述 Qt是一个跨平台的C++图形用户界面框架,支持Windows、Linux、macOS等多种操作系统及Android、iOS移动平台。它提供可视化开发工具,简化了应用程序开发流程,支持拖拽式UI设计。Qt发展历程经历了多次收购,如今已成为功能全面的开发工具,特别适用于桌面应用、移动应用和嵌入式系统开发。文章详细介绍了Qt的安装配置过程、开发环境QtCreator的界面功能,以及如何创建简单项目。 阅读详情

前言

上一节已经成功创建了一个Qt项目,接下来就是要在创建好的项目中,添加自己想要的功能。在写代码之前,我们需要掌握Qt的一些基础知识。

语法部分就不用讲了,这系列文章是对有C或C++语言基础的同学展开的,如果一点编程基础都没有的同学,也可以在后续实操文章中,跟着文章一点一点学习和积累语法知识。

和C/C++不同的是,Qt封装了一些自己的基本数据类型和方法。所以我们要想进行Qt编程,就要先掌握一些基本的数据类型,以及它们的使用方法,这在我们后续编程中会用到。

还有一点要说明的是,在Qt项目开发过程中,C++提供的数据类型还有一些系统函数都是可以使用的,只要包含对应的头文件就可以了。但是当我们在使用Qt提供的方法时,它的参数类型很多都是Qt的一些基本数据类型,所以我们还是要掌握的。

QByteArray

QByteArray是字符数组类,字节数组类是一个提供字节数组的类,它可以一位一位的访问数组中的字符。

它可以对应char*这个类去学习。QByteArrary这个类经常在串口通信中使用,因为串口通信数据都是一个一个的8位字节流,所以使用QByteArray就很方便。对于QByteArray的操作,主要需要掌握的操作有以下几种。

直接上代码:

初始化
QByteArray ba("Hello"); // "Hello"
或
QByteArray ba;
ba.resize(5);
ba[0] = 'H';
ba[1] = 'e';
ba[2] = 'l';
ba[3] = 'l';
ba[4] = 'o'; // "Hello"
或
QByteArray ba;
ba.fill('O', 2);// "OO"
//初始化时重点注意QByteArray的大小,和每一位的赋值。 
访问某个元素
QByteArray ba("Hello");
qDebug() << ba[0]; // "H"
或
qDebug() << ba.at(1); // "e"
//访问某个元素时重点注意取得位数是否正确,第一位对应的值为0。 
截取字符串
QByteArray x("Pineapple");
QByteArray y = x.left(4);// y=="Pine"
或
QByteArray y = x.right(5); // y=="apple"
或
QByteArray y = x.mid(4,3); // y=="app"
QByteArray y = x.mid(4); // y=="apple"
//用mid方法从字符串中间截取时,第一个参数是起始位置,索引值从0开始;
//第二个参数是截取的位数,如果不写第二个参数,就会一直截取到最后。 
获取字节数组的大小
QByteArray ba("Hello");
int n = ba.size(); // n==5
int n = ba.length(); // n==5
int n = ba.count();// n==5
//这三个方法除了名
Qt的基本数据类型 QVariant变量没有数据类型,像是一个最常见的Qt的数据类型的公用体(Union)但是一次只能是一个对象,有些对象可能是多值的(比如字符串列表) 可以用 toT():T表示一种数据类型,将QVariant转化为别的类型并且获取值,在这里是赋值一份对象,所以原来的对象不会改变 阅读详情

相关推荐

Qt编程基础:线程处理、网络编程及界面设计

本文详细介绍了Qt编程的基础知识,主要包括多线程处理(QThread)、QProcess的应用、QImage与cv::Mat之间的转换、网络编程(QNetworkAccessManager)、STL与Qt容器的最佳实践以及常用控件(如QStackedWidget)。文章还提供了丰富的代码示例,帮助开发者理解和掌握Qt的各种功能和技术要点。

zhouwensmile的博客 1281

【QT】入门基础教程Qt5

pass

张林克的博客 3848

Qt界面编程基础

一、Qt简介 1、什么是Qt: ​ 是使用C++语言封装的一套用于图形界面编程的框架,Qt专注但不局限于图形界面的开发,还支持系统调用、网络编程、数据库编程、2D/3D图形处理、音视频处理等。 ​ 它是跨平台了,支持几乎所有的主流操作系统,Linux、Windwos、MacOS、Android、iOS等系统。 2、为什么选择Qt ​ 基于C++,简单易用 ​ 优良的跨平台特性,在个人计算机、工控、嵌入式 的界面占主导地位 二、Qt环境与工具 ​ 1、头文件和库文件 ​

xiaoqiudao的博客 4729

【Qt-编程指南】

即ISO-8859-1的别名,编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。根据自己的Qt版本下载,比如我的是Qt5.14,所以下载的是https://download.qt.io/archive/qt/5.14/5.14.0/submodules/下的qtvirtualkeyboard-everywhere-src-5.14.0.tar.xz文件。亦称为Latin1。

sinat_23896491的博客 1035

Qt编程基础:熟悉常用的基本类型

Qt是一个功能强大的跨平台应用程序开发框架,提供了丰富的类和工具,用于开发图形界面和应用程序逻辑。在Qt编程中,我们经常会使用各种不同的基本类型来处理数据和变量。本文将介绍一些常用的基本类型,并提供相应的源代码示例,帮助您更好地理解和使用它们。以上是一些常用的Qt基本类型及其使用示例。了解和熟悉这些基本类型对于进行Qt编程非常重要。通过使用适当的类型,您可以更好地管理和操作数据,编写出更可靠和高效的应用程序代码。希望本文对您有所帮助!

TechRoarX的博客 954

LLaVA-1.5:多模态视觉问答新突破

LLaVA-1.5在多模态视觉问答(VQA)任务中取得了显著进展,主要得益于视觉-语言连接器的优化和特定任务数据集的增加。通过将连接器升级为两层MLP,模型在处理视觉与语言关系时表现更佳。同时,引入如OKVQA、OCRVQA等数据集,增强了模型在复杂视觉推理任务中的能力。在11个基准测试中,LLaVA-1.5超越了现有方法,展示了其强大的多模态能力。此外,模型通过提升输入图像分辨率、扩展语言模型和改进多语言能力,进一步提升了性能。尽管在短格式回答任务中初期表现不佳,但通过调整提示格式和微调,其性能显著提升

weixin_57060548的博客 945

利用pyGAM实现广义可加模型(GAM)的实战指南

本文提供了利用pyGAM库实现广义可加模型(GAM)的完整实战指南。通过乳腺癌和房价预测案例,详细讲解了从环境配置、模型构建、核心可视化(部分依赖图)到参数调优(n_splines, lam)的每一步。重点展示了GAM如何平衡模型准确性与可解释性,帮助数据科学家在Python中高效应用这一强大工具。

weixin_29053383的博客 329

STM32驱动2.8寸TFTLCD屏幕实战:从看懂原理图到点亮第一个像素(基于ILI9341)

本文详细介绍了如何使用STM32驱动2.8寸TFTLCD屏幕(基于ILI9341驱动芯片),从硬件连接到软件配置,包括FSMC接口设置、ILI9341初始化序列、坐标设置及基础绘图函数实现。文章还提供了常见问题排查指南和性能优化技巧,帮助开发者快速解决屏幕不亮等问题,并提升显示性能。

weixin_42665255的博客 267

基于STM32的智能浇花系统毕业设计(全部资料)

摘要:本文设计了一种基于STM32单片机的智能浇花系统,集成了环境温湿度检测、土壤温湿度监测、LCD显示、Wi-Fi联网及手机APP远程控制等功能。系统通过传感器实时采集环境参数,自动控制水泵工作实现智能灌溉,同时支持用户通过手机APP远程监控和调节。论文详细阐述了硬件选型、软件设计及系统测试过程,验证了系统的稳定性和实用性。该设计为家庭园艺提供了智能化解决方案,具有节水高效、操作便捷等特点。关键词:STM32;智能灌溉;远程控制;环境监测;Wi-Fi通信。

3254968421的博客 1194

北斗导航 | 2023 PTTI会议论文 2023 ITM会议论文 2022 ION GNSS+ 会议论文下载:ION 美国导航学会

2023 国际技术会议(ITM) 2023 精密时间和时间间隔系统和应用会议(PTTI) 2022 美国导航学会国际会议(ION GNSS +)

尘世冰封的专栏 4612

基于 51 单片机的智能手势控制小车设计与实现

智能手势控制小车以STC89C52RC 单片机为控制核心,通过手势识别模块采集用户手势指令,经单片机处理后驱动电机执行前进、后退、左转、右转等动作。该项目融合了传感器技术、单片机编程和电机驱动技术,具有成本低、易实现、互动性强的特点,适合作为嵌入式系统入门实践案例。本项目成功实现了基于 51 单片机的智能手势控制小车,通过 APDS-9960 模块采集手势信号,经单片机处理后驱动电机完成基本动作,验证了 “传感器 + 单片机 + 执行器” 的嵌入式系统设计思路。

weixin_42300449的博客 177

ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机

Intel在Github上开源了支持所有RealSense系列相机的SDK,包括了D400、SR300系列深度相机和T265双目跟踪相机,支持Linux、Windows、Mac OS以及Android,链接:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installin...

m0_37957160的博客 2075

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

AI人人懂 557

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: onlyoffice表格字体渲染实现思路
下一篇: react 快速接入 sentry,性能监控与错误上报踩坑日记
梅花十三儿
博客等级 码龄5年 1038粉丝 444原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值