QSignalBlocker在构造函数中阻塞信号,在析构函数中它将状态重置为构造函数运行前的状态。

QSignalBlocker用来代替blockSignals()。当使用blockSignals()来阻塞信号时,总要成对使用blockSignals(true)和blockSignals(false)。一不小心少写一个则信号一直阻塞后果难料,使用QSignalBlocker代替则不会有问题。

测试代码:

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QDateTime>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);connect(&timer,&QTimer::timeout,this,&Widget::onTimer);timer.start(1000);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{QSignalBlocker blocker(timer);QEventLoop eventloop;QTimer::singleShot(5000, &eventloop, SLOT(quit()));eventloop.exec();qDebug()<<"过了5秒";
}void Widget::onTimer()
{qDebug()<<"xxxxxxx"<<QDateTime::currentDateTime();
}

定时器每秒打印一次时间,按下按钮阻塞定时器5秒看效果:

信号阻塞器QSignalBlocker的用法相关推荐

  1. python槽怎么用_【Python成长之路】从零学GUI -- 多窗口跳转(信号与槽函数用法)...

    [写在前面] 自学python,不同于工作上的代码编程,主要是为了好玩或者满足自己的需求.因此,我一直想自己做些APP,未来可以给小朋友做做练习,比如让她学习算术.学习成语接龙之类的.总不能让她看这样 ...

  2. Linux下的kill函数的用法

    功能描述:用于向任何进程组或进程发送信号. 头文件用法: #include <sys/types.h>   #include <signal.h> int kill(pid_t ...

  3. Linux 下的KILL函数的用法

    [ KILL ]功能描述: 用于向任何进程组或进程发送信号. 头文件用法: #include <sys/types.h>   #include <signal.h> int k ...

  4. linux 系统kill用法

    Linux下Kill函数用法 (2014-06-24 18:13:17) 转载▼ 标签: linux kill函数 分类: Linux-ALL Linux下Kill函数用法[ KILL ]功能描述: ...

  5. Qt for Python 信号和槽的使用详解

    前言 如果要说 Qt 里面的最常听到的词,那么 "信号"(signals)和"槽"(slots)绝对是其中之一了,其功能简单强大,想必每个 Qt 程序员最能理解 ...

  6. 【Qt】Qt中信号与槽

    00. 目录 文章目录 00. 目录 01. 信号与槽 02. 介绍 03. 信号与槽 04. 信号 05. 槽 06. 一个小例子 07. 一个真实的例子 08. 信号和槽使用默认参数 09. 信号 ...

  7. C++框架_之Qt的信号和槽的详解

    目录 C++_之Qt的信号和槽的详解 1.概述 1.1对象树(子对象动态分配空间不需要释放) 2.信号和槽 Qt5 的书写方式:(推荐的使用)★★★★★ Qt4 的书写方式: 3.自定义信号槽 3.1 ...

  8. pyqt 槽任意参数_PyQt5信号与槽机制入门(一)

    信号(Signal)与槽(Slot)是Qt中的核心机制,也是在PyQt编程中对象之间进行通信的机制.当事件或者状态发生改变时,就会发出信号,信号会触发所有与这个事件(信号)相关的函数(槽):一个信号可 ...

  9. Linux下Kill函数用法

    [ KILL ]功能描述: 用于向任何进程组或进程发送信号. 头文件用法: 1  #include  < sys / types.h > 2  3  #include  < sign ...

最新文章

  1. linux系统发送信号的系统调用是,linux系统编程之信号:信号发送函数sigqueue和信号安装函数sigaction...
  2. 【Linux】Linux简单操作之压缩解压
  3. verilog中数组的定义_开源仿真工具Icarus Verilog中的verilog parser
  4. python中引入sql的优点_SQL Server 2017中的Python:增强的数据库内机器学习
  5. mysql left join 结果怎么这么慢
  6. dropify,不错的图片上传预览插件
  7. java list 元素去重_小猿圈Java开发之list按照元素某个字段去重详解
  8. linux 用户权限 数字,几个linux命令之用户权限相关命令
  9. java web Excel在网页预览
  10. 青花瓷(charles)的基本使用和注意事项
  11. 教育培训教师说课通用PPT模板
  12. Android intent category大全
  13. Linux平台下rar, 7z, zip压缩文件密码破解
  14. torchvision学习笔记之transforms
  15. Scrum板与Kanban如何抉择?敏捷工具:kmgoam板与按照pyluujly
  16. 学计算机基础专业必备的书,大学计算机基础教程
  17. Win10怎么使用Windows Defender扫描文件夹中的恶意软件?
  18. 大话设计模型 Task02:策略、装饰、代理
  19. Google首席决策师告诉你AI和数据科学团队需要哪10种角色?
  20. 稻盛和夫修的是什么心?

热门文章

  1. 解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题
  2. vue 验证是否数字类型_vue.js如何判断输入是否是数字
  3. 《最后生还者》系列:神坛的根基是什么?
  4. 在阿里干了6年自动化测试,30岁即将退休的我,告诉你自动化测试工程师有多吃香...
  5. python输出字符串和变量_python之字符串和变量
  6. 天涯[经济杂谈]一位创业者的商海感悟(语录版,连载中,持续更新)【力荐】
  7. mui android交互,一加手机CMUI交互界面曝光 扁平化小清新
  8. 黑苹果键盘键盘驱动_苹果糟糕的键盘以及为何可维修性如此重要
  9. 鸿蒙应用开发之canvas画布组件介绍
  10. jieba分词错误_jieba中文分词