• Chapter1:Qt概念


    信号和槽
    1.信号与槽机制的连接方式
    (1):一个信号可以与另一个信号相连,代码如下:
     connect(Object1,SIGNAL(signal1),Object2,SIGNAL(signal1));

    (2):同一个信号可以与多个槽连接
     connect(Object1,SIGNAL(signal2),Object2,SIGNAL(slot2));
     connect(Object1,SIGNAL(signal2),Object3,SIGNAL(slot1));

    (3):同一个槽可以响应多个信号
     connect(Object1,SIGNAL(singla2),Object2,SIGNAL(slot2));
     connect(object3,SINGAL(signal2),Object2,SIGNAL(slot2));

    但常用连接方式为:
     connect(Object1,SIGNAL(signal),Object2,SLOT(slot));

    SIGNAL()和SLOT()是Qt定义的两个宏,他们返回其参数的C语言风格的字符串(const char*),如下等效:
     connect(button,SIGNAL(clicked()),this,SLOT(showArea()));
     connect(button,"clicked()",this,"showArea()");

    2:信号和槽机制的优点
     (1):类型安全
     (2):松散耦合
      一个类若要支持信号和槽,就必须从QObject或QObject的子类继承。注意,Qt信号和槽机制不支持对模板的使用。

    3:信号与槽机制的效率
     信号和槽机制增强了对象间通信的灵活性,然而这也损失了一些性能。通过传递一个信号来调用槽函数将会比直接调用非虚函数运行速度慢10倍。原因:
     1:需要定位接受信号的对象
     2:安全地遍历所有的关联
     3:编组(marshal)/解组(unmarshal)传递的参数
     4:多线程饿时候,信号可能需要排队处理


    L2 Qt5元对象系统
     Qt的元对象系统基于以下三个事实
     1:基类QObject:任何需要使用元对象系统功能的类必须继承自QObject
     2:Q_OBJECT宏:Q_OBJECT宏必须出现在类的的私有声明区,用于启动元对象的特性
     3:元对象编译器(Meta-Object Compiler.moc):为QObject子类实现元对象特性提供必要的代码实现

    L3 布局管理器
     QGridLayout *mainLayout = new QGridLayout(this);
     mainLayout->addWidget(...);
     QWidget::setLayout(...);

    作者:长风 Email:844064492@qq.com QQ群:607717453 Git:https://github.com/zhaohu19910409Dz 开源项目:https://github.com/OriginMEK/MEK 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 感谢您的阅读。如果觉得有用的就请各位大神高抬贵手“推荐一下”吧!你的精神支持是博主强大的写作动力。 如果觉得我的博客有意思,欢迎点击首页左上角的“+加关注”按钮关注我!
  • 相关阅读:
    GFS读后笔记
    BigTable读后笔记
    恢复系统基础理论
    事务基础理论
    ARIES算法简介
    怎么快速构建自己的C/C++程序?——有关编译、静态链接和SCons
    lua学习笔记
    运行时动态伪造vsprintf的va_list
    11月30日站立会议
    11月29号站立会议
  • 原文地址:https://www.cnblogs.com/zhaohu/p/8927645.html
Copyright © 2020-2023  润新知