zoukankan      html  css  js  c++  java
  • Qt blockSignals函数的用法

    前面的一篇博客中提到给一个创建了信号槽的ComboBox添加或去除Item时采用的方法是在对该ComboBox操作前先使用disconn函数将信号槽先切断,操作好后在connect。

    今天发现有另一种解决方法,就是使用blockSignals函数。

    该函数的原型:bool QObject::blockSignals(bool block)

    官方解释:If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). If block is false, no such blocking will occur.

    理解:如果block为真,阻塞信号,或者如果block为假,取消信号阻塞。如果信号被阻塞,被发射的信号消失在超空间。

    实际应用:

    1 ui->deviceComboBox->blockSignals(true);//如果block为真,阻塞信号,或者如果block为假,取消信号阻塞。
    2 for(int i = 0; i < supportedDevice->getCount(); i++)
    3 {
    4   DeviceTreeNode const &node = supportedDevice->getItem(i);
    5   qDebug<<QString("%1,%2
    ").arg(node.DeviceNumber).arg(node.Description);
    6   QString description = QString::fromWCharArray(node.Description);
    7   ui->deviceComboBox->addItem(description);
    8 }
    9 ui->deviceComboBox->blockSignals(false);//如果block为真,阻塞信号,或者如果block为假,取消信号阻塞。
  • 相关阅读:
    大话设计模式之备忘录模式
    大话设计模式之模板方法模式
    大话设计模式之桥接模式
    大话设计模式之组合模式
    大话设计模式之适配器模式
    大话设计模式之原型模式
    大话设计模式之解释器模式
    大话设计模式之享元模式
    大话设计模式之迭代器模式
    dom操作排他思想
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14420516.html
Copyright © 2011-2022 走看看