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

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个字符大小的步长增长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行者..................

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值