学习Qt笔记

这篇具有很好参考价值的文章主要介绍了学习Qt笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言:

一、Qt Creator 使用技巧 

二、 Qt的元对象系统

2.1 Qt的元对象系统概述

2.1.2 属性系统

 2.1.3 信号与槽

 2.1.4 对象数

 2.2  容器类

三、常用界面组件使用

3.1 QString字符串操作


前言:

        学习笔记的内容来自B站up主阿西拜编程

《Qt6 C++开发指南 》2023(上册,完整版)_哔哩哔哩_bilibili《Qt6 C++开发指南 》2023(上册,完整版)共计84条视频,包括:00书籍介绍、1.1Qt简介、1.2Qt6安装等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1km4y1k7CW/

哔哩哔哩_bilibilihttps://www.bilibili.com/cheese/play/ss5138

一、Qt Creator 使用技巧 

                      快捷键使用

F4 在同名的头文件和源程序文件之间切换
F2 变量:跳转到声明;函数:声明和定义切换

Ctrl+Shift+R

该名称,将所有用到这个字符的地方替换掉
Ctrl+I 为选中的文本自动缩进
Ctrl+/ 注释或取消注释
F1 为光标所在的位置显示帮助文档
Ctrl+Shift+S 文件全部保存
Ctrl+F 调出查找和替换对话框
F3 查找下一个
Ctrl+B 编译当前项目
F5 开始调试
F10 单步(略过)调试,执行当前程序语句
F11 单步(跟踪)调试,如果当前行里有函数,就跟踪进入函数
F9 设置或取消断点

二、 Qt的元对象系统

2.1 Qt的元对象系统概述


        QT中引入元对象系统对标准C++语言进行了扩展。
概述
        ●        Qobject类是所有使用元对象系统的类的基类
        ●         必须在一个类的开头部分插入宏Q_OBJECT,

                   才可以使用元对象系统的特性。       

                   当 MoC发现类中定义了Q OBJECT宏时,会为其生成相应的C++源文件
        ●         元对象编译器 (Meta-object Compiler,MOC) 是一个预处理器,先将Qt的特性
                   程序转换为标准C++程序,在由标准C++编译器进行编译

Object类:

        元对象系统的特性是通过QObject的一些函数来实现的。
        ● 元对象 (meta object): 每个QObject及其子类的实例都有一个元对象 (静态变
量staticMetaObject) 。函数metaobject()可以返回它的指针。
       ●  类型信息: Qobject的inherits()函数可以判断继承关系。
       ●  动态翻译: 函数tr()返回一个字符串的翻译版本。
       ●  对象树:表示对象间从属关系的树状结构。Qobject提供了parent()、children().
findChildren()等函数。对象树中的某个对象被删除时,它的子对象也将被删除。
       ●  信号和槽:对象间的通信机制。
       ●  属性系统: 可以使用宏Q_PROPERTY定义属性,Qobject的setProperty()会设置属
性的值或定义动态属性; property函数会返回属性的值。

2.1.2 属性系统

属性系统:
在oobject的子类中可以通过Q_PROPERTY宏定义属性。

 2.1.3 信号与槽

信号与槽是元对象系统支持的,对象间通信所采取的机制

connect(sender,SIGNAL(signal()),receiver,SLOT(slot()));

最后一个参数:Qt::ConnectionType表示了信号与槽槽之间的关联方式
        Qt::AutoConnection (缺省值):自动确定关联方式。
        Qt::DirectConnection:信号被发射时,槽立即执行,槽函数与信号在同一线程
        Qt::QueuedConnection: 事件循环回到接收者线程后执行槽,槽与信号在不同线程信号线程会被阻塞直
        Qt::BlockingQueueConnection: 与Qt::QueuedConnection相似,到槽执行完毕。当槽函数与信号在同一线程,会造成死锁。

disconnect()函数的使用
1.        解除与一个sender所有signal的连接:
           disconnect(myobject,nullptr,nullptr,nullptr);//静态函数
           myobject->disconnect();//成员函数
2.        解除与一个特定信号的所有连接:
           disconnect(myobject,SIGNAL(mysignal()),nullptr, nullptr);
           myobject->disconnect(SIGNAL(mySignal()));
3.        解除与一个特定receiver的所有连接:
           disconnect(myobject, nullptr,myReceiver,nullptr);
           myobject->disconnect(myReceiver);
4.        解除一对特定的信号和槽的连接:
           disconnect(lineEdit,&QLineEdit::textChanged,label,&QLabel::setText);

 2.1.4 对象数

对象树
Qobject以对象树的形式组织自己,其构造函数里有一个parent参数。当用另一个
对象作为父对象创建一个QObject时,它会被添加到父对象的children()列表中,而
当父对象被删除时是时,它会被删除。这种方法非常适合GUI对象的需求。例如,
QShortcut(键盘快捷键)是相关窗口的子对象,因此当用户关闭该窗口时,快捷键
也会被删除。

 2.2  容器类

         Qt库提供了一组通用的基于模板的容器类。可用于存储指定类型的项。例如,如果需要一个大小可变的QString数组,可以使用QList<QString>或QStringList。
        Qt容器类成比STL容器更轻巧(速度和存储优化) 、更安全(线程安全) 、更易使用。如果不熟悉STL,或者更喜欢用“Qt的方式”写代码,可以选用Qt容器类。
        Qt容器提供了用于遍历的迭代器。STL风格的迭代器是最高效的迭代器,可以与Qt和STL的泛型
        算法一起使用。提供java风格的迭代器是为了向后兼容。

三、常用界面组件使用

3.1 QString字符串操作

QString简介:       

        QString没有父类,QString存储一个由16位QChar组成 (一种Unicode编码,
一个汉字就是一个字符)字符串,每个QChar对应一个UTF-16编码单元。(编码值大于
65535的Unicode字符使用两个连续的QChar存储。)
        UTF-8:最少用1个字节编码,可以使用1~4个字节编码。与Latin1编码兼容,被广泛使用Qt Creator存储的源码默认使用UTF-8编码。
        UTF-16: 最少使用2个字节编码,可以使用2或4个字节编码。

QString的创建和初始化:

        将const char *传递给它的构造函数。例下面的代码创建了一个包含"Hello"的长度为5的
OString:

                                                        QString str ="Hello"        

QString字符串的索引:

可以使用元素索引操作符“[]” 或者 接口函数at()文章来源地址https://www.toymoban.com/news/detail-810509.html

到了这里,关于学习Qt笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 04-2_Qt 5.9 C++开发指南_SpinBox使用

    QSpinBox 用于整数的显示和输入,一般显示十进制数,也可以显示二进制、十六进制的数,而且可以在显示框中增加前缀或后缀。 QDoubleSpinBox 用于浮点数的显示和输入,可以设置显示小数位数,也可以设置显示的前缀或后缀。 实例samp4_3 演示QSpinBox和QDoubleSpinBox这两个组件的使

    2024年02月14日
    浏览(65)
  • 16-1_Qt 5.9 C++开发指南_多语言界面

    有些软件需要开发多语言界面版本,如中文版和英文版,并且在软件里可以方便地切换界面语言。Qt 为多语言界面提供了很好的支持,使用 Qt 的一些规则和工具,可以很方便地为应用程序开发提供多语言界面支持。 用 Qt 开发多语言界面应用程序,主要包括以下几个步骤。

    2024年02月14日
    浏览(46)
  • 12-4_Qt 5.9 C++开发指南_创建和使用共享库

    除了静态库,Qt 还可以创建共享库, 也就是 Windows 平台上的动态链接库 。动态链接库项目编译后生成 DLL 文件,DLL 文件在 windows 平台上应用广泛。DLL 文件是在应用程序运行时加载的,不像静态库那样在编译期间就连编到应用程序里。若更新了 DLL 文件版本,只要接口未变,

    2024年02月14日
    浏览(53)
  • 04-5_Qt 5.9 C++开发指南_QComboBox和QPlainTextEdit

    QComboBox 是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个QLineEdit 用作输入。OComboBox 除了显示可见下拉列表外,每个项 (item,或称列表项)还可以关联一个 QVariant 类型的变量,用于存储一些不可见数据。 QPlainTextEdit 是一个多行文本编辑器,用于显示

    2024年02月14日
    浏览(54)
  • 04-6_Qt 5.9 C++开发指南_QListWidget和QToolButton

    Qt 中用于项 (Item)处理的组件有两类, 一类是 Item Views ,包括 QListView、QTreeView、QTableView、QColumnView 等; 另一类是 Item Widgets ,包括 QListWidget、QTreeWidget 和QTableWidget。 Item Views 基于模型/视图(Model/Vicw)结构,视图 (View)与模型数据(Model Data)关联实现数据的显示和编辑,模型/视图结

    2024年02月13日
    浏览(49)
  • C++界面开发框架Qt 6.x入门指南 - 拥有程序主窗口

    Qt技术交流群:166830288      欢迎一起进群讨论 点击获取Qt组件下载 Qt Widget 是桌面环境中典型的用户界面元素,这些小部件很好地集成到底层平台,在 Windows、Linux 和 macOS 上提供原生外观。 这些小部件成熟且具有丰富的用户界面元素,适用于大多数传统用户界面。 与 

    2024年02月05日
    浏览(45)
  • 08-3_Qt 5.9 C++开发指南_Graphics View绘图架构

    采用QPainter 绘图时需要在绘图设备的 paintEvent()事件里编写绘图的程序,实现整个绘图过程。这种方法如同使用 Windows 的画图软件在绘图,绘制的图形是位图,这种方法适合于绘制复杂性不高的固定图形,不能实现图件的选择、编辑、拖放、修改等功能。 Qt 为绘制复杂的可交

    2024年02月13日
    浏览(42)
  • 04-4_Qt 5.9 C++开发指南_时间日期与定时器

    时间日期是经常遇到的数据类型,Qt 中时间日期类型的类如下。 QTime:时间数据类型,仅表示时间,如 15:23:13。 QDate:日期数据类型,仅表示日期,如2017-4-5. QDateTime:日期时间数据类型,表示日期和时间,如2017-03-23 08:12:43. Qt 中有专门用于日期、时间编辑和显示的 界面组件 ,介

    2024年02月14日
    浏览(50)
  • 06-2_Qt 5.9 C++开发指南_自定义对话框及其调用

    本篇介绍到的对话框及其调用实例较为复杂但十分详细,如果做了解可以先参考:QT从入门到实战x篇_13_模态和非模态对话框创建。 在一个应用程序设计中,为了实现一些特定的功能,必须设计自定义对话框。自定义对话框的设计一般从QDialog 继承,并且可以采用 UI 设计器可

    2024年02月13日
    浏览(46)
  • 14-5_Qt 5.9 C++开发指南_基于HTTP 协议的网络应用程序

    Qt 网络模块提供一些类实现 OSI 7 层网络模型中高层的网络协议,如 HTTP、FTP、SNMP等,这些类主要是 QNetworkRequest、QNetworkReply和QNetworkAccessManager。 QNetworkRequest 类通过一个URL 地址发起网络协议请求,也保存网络请求的信息,目前支持 HTTP、FTP 和局部文件 URLs的下载或上传。 QNe

    2024年02月13日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包