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

信号槽、父子关系、隐式共享

1. Qt基础

- connect(…):连接了"OK"按钮至QDialog的accept槽函数,以及"Cancel"按钮至QDialog的reject槽函数。根据结果判断按下的是"OK"按钮还是"Cancel"按钮。

- parent-child机制:当建立一个物件时,若有parent,则parent将此物件加入其children list。消除parent时,会根据children list 消除这些child。widget的parent还决定了child widget的显示范围。

- 实现槽函数on_lineEdit_textChanged():

```cpp

void Dialog::on_lineEdit_textChanged() {

    ui->okButton->setEnabled(ui->lineEdit->hasAcceptableInput());

}

```

- 运行工程:当在lineEdit中输入A12后,"OK"按钮将自动变为可用状态。

2. 字符串类QString:概念解析

- 隐式共享技术:当两个对象共享数据时,根据数据是否改变进行深拷贝或浅拷贝。

- QString类采用隐式共享技术,结合深拷贝和浅拷贝。

- 通过例子说明隐式共享如何工作:

```cpp

QString str1 = "data";

QString str2 = str1;

str2[3] = 'e';

str2[0] = 'f';

str1 = str2;

```

3. Qt中支持隐式共享的类:

- 所有的容器类。

- QByteArray、QBrush、QPen、QPalette、QBitmap、QImage、QPixmap、QCursor、QDir、QFont和QVariant等。

4. QString内存分配策略:

- 每次分配4个字符空间,直到大小为20。

- 在20~4084之间,内存块大小以2倍速增长。

- 从4084开始,每次以2048个字符大小的步长增长。


http://www.kler.cn/news/294278.html

相关文章:

  • ant-design-vue中实现a-tree树形控件父子关联选中过滤的算法
  • 算法备案究竟难在哪里?
  • Java Kafka生产者实现
  • 在线式环氧乙烷检测仪:现代工业生产中的环氧乙烷安全监测
  • 一文学会Flask-Login
  • 12. 如何在MyBatis中进行分页查询?常见的分页实现方式有哪些?
  • MySQL的服务器与客户端:架构解析与实践
  • 人工智能训练师边缘计算实训室解决方案
  • 当水泵遇上物联网:智能水务新时代的浪漫交响
  • spring boot项目中配置文件配置mapper*.xml文件路径无效的问题排查记录
  • Vatee万腾平台:科技赋能,开启企业数字化转型新篇章
  • 生日贺卡录放音芯片,多段音频录音ic生产厂商,NVF04M-32minute
  • Codeforces Round 971 (Div. 4) (A~G1)
  • 字节6面,面爆炸了
  • 智慧公厕技术应用、系统架构、应用功能有哪些?@卓振思众
  • C#中LINQ的Cast<T>与OfType<T>
  • DevOps学习笔记
  • 基于SpringBoot+Vue+MySQL的校园周边美食探索及分享平台
  • 初识jQuery
  • Android 15 新特性快速解读指南
  • 使用bert_base_chinese实现文本语义相似度计算
  • Spring Boot-自定义banner
  • 视频提取字幕的软件有哪些?高效转录用这些
  • react的useRef作用是什么怎么使用
  • Android Camera系列(一):SurfaceView+Camera
  • 数据结构,单向链表
  • 【2024高教社杯全国大学生数学建模竞赛】B题完整解析(含论文、代码分享)
  • 7个 C# 高阶用法详解:从基础到实战
  • 微信小程序实践案例
  • Kafka Broker处于高负载状态(例如消息处理量大或系统资源不足),无法及时响应消费者的请求