zoukankan      html  css  js  c++  java
  • 关于qt信号和事件的区别的思考

    1:一般在Qt中只是将精力放在发送信号上并不放在事件上,因为事件最终要发送一个信号。比如我们关心的是QPUshButton的鼠标点击事件,但我们不需要关心这个鼠标点击事件,而是关心它的clicked()信号。

    Qt的事件很容易和信号槽混淆。
    这里简单的说明一下,signal由具体对象发出,然后马上交给由connect函数链接的slot进行处理。(聚焦在发起信号的对象上。而对于事件,QT使用一个事件队列对所有发出的事件进行维护,当新事件产生时,会被追加到事件队列的尾部,前一个事件完后,取出后面事件进行处理。聚焦在事件上而不关心事件的发起者。因为事件循环由该发起对象维护。
    但必要时,QT的事件也可以不进入事件队列,而是直接处理的,并且事件还可以使用事件过滤器

    总的说当我们使用组件时关心的是信号槽。如果我们自定义组件,我们关心的是事件(在这个组件内的事件循环中处理该组件内的各种事件)。

    2:或者说信号槽是对象之间的信息通讯的方式。事件是一个对象内部的一些功能的实现方式。

    开始从工作中找乐趣
  • 相关阅读:
    ES6、ES7、ES8特性
    【react】XXX项目环境搭建
    map
    vector
    list
    米勒素数模板
    POJ-2421-Constructing Roads(最小生成树 普利姆)
    HDU1301 Jungle Roads(Kruskal)
    Truck History(prime)
    phpstorm快捷键和激活
  • 原文地址:https://www.cnblogs.com/keleman/p/14338146.html
Copyright © 2011-2022 走看看