当前位置:   article > 正文

disconnect与blockSignals案例解析_python blocksignals

python blocksignals
  1. from PyQt5.Qt import *
  2. import sys
  3. class Window(QWidget):
  4. def __init__(self):
  5. super().__init__()
  6. self.setWindowTitle("")
  7. self.resize(800, 800)
  8. self.setup_ui()
  9. def setup_ui(self):
  10. def onTitleChanged(title):
  11. print('title changed', title)
  12. self.windowTitleChanged.connect(onTitleChanged)
  13. # 创建一个应用程序对象
  14. app = QApplication(sys.argv)
  15. window = Window()
  16. window.show()
  17. window.setWindowTitle('hello')
  18. # 应用程序的执行(进入到消息循环,无限循环中,检测整个程序所接收到的用户的交互信息)
  19. sys.exit(app.exec_())

窗口标题发生变化时

会发出windowTitleChanged信号

该信号一旦触发

槽函数onTitleChanged将被执行


  1. def setup_ui(self):
  2. def onTitleChanged(title):
  3. self.windowTitle('title changed'+title)
  4. self.windowTitleChanged.connect(onTitleChanged)

上面代码的功能

收到windowTitleChanged信号后

将标题改成title changed +"title"

标题一改变又会触发windowTitleChanged信号

槽函数又会被调用

进入一个死循环


这时可以使用

self.windowTitleChanged.disconnect()

self.blockSignals(True)

进行处理


enjoy

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/816808
推荐阅读
相关标签
  

闽ICP备14008679号