C++ Qt设计模式笔记

8.1 lazy-fashion

  1. QObject的赋值(assignment)构造函数被设为私有,所以所有按值传递QObject及其子类的行为将会报错
  2. 不要在堆上创建QVariant相关的类型,如QString,QList,QHash, QImage,

8.2

  1. QObject 如果有parent的则new 后无需delete

8.4

  1. 加入Q_OBJECT后必须运行qmake重新生成makefile

8.6

  1. 一切QObject 对象在QApplication之后创建,在QApplication销毁之前销毁,因此static QObject 对象是不允许的
  2. 推荐有parent的QObject在堆上创建(在栈上存在会释放多次的隐患),无parent的QObject在栈上创建
  3. 不推荐直接delete QObjects(可能会导致信号未处理),推荐QObject::deleteLater()

9

  1. 子widget不能超出父widget的范围

17

  1. 耗时的多线程计算尽量采用QtConcurrent不用QThread
  2. 不要在非主线程的线程中直接访问GUI(包括QPixmap,读取QLineEditd 中的内容),用信号槽
  3. thread affinity,线程亲和性,每个QObject都由一个线程创建,创建线程负责执行slots
  4. QThread::exec() 线程进入事件循环
  5. QApplication::postEvent()和queued signal/slot可以用于线程间的通信
  6. 使用qRegisterMetaType()注册signal/slot中的参数类型
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值