美文网首页
【Qt】信号与槽

【Qt】信号与槽

作者: 4thirteen2one | 来源:发表于2019-05-26 15:18 被阅读0次

    信号就是“某某事件发生了”这么一个信号,槽就是对应事件发生时所需采取的应对措施

    连接方式:widget.信号.connect(槽函数)

    一、信号

    • obj.objectNameChanged:对象名称发生改变时发射此信号,对应于 obj.setObjectName
    • obj.destroyed:对象销毁时发射此信号

    1.1 控件内置信号

    • QPushButton().pressed:按下
    • QPushButton().clicked:按下并抬起

    1.2 自定义信号

    二、槽

    • 一个信号可以连接多个槽函数
    • 一个信号可以连接另一个信号
    • 信号的参数可以是任何 Python 类型
    • 一个槽函数可以监听多个信号

    三、信号处理

    • widget.信号.connect(槽函数)
    • obj.disconnect():取消信号与槽的连接(此处 obj 可为控件或信号)
    • widget.blockSignals(bool):临时阻断/暂停控件所有信号与槽的连接
      True 表示断开;False 表示恢复
    • widget.signalsBlocked():信号是否被阻断
    • widget.receivers(信号):与当前信号连接的槽函数个数

    案例:修改窗口标题时得到提示

    window = QWidget()
    def notice(title):
        window.windowTitleChanged.disconnect()
        window.setWindowTitle(f"*{title}")
        window.windowTitleChanged.connect(notice)
    window.windowTitleChanged.connect(notice)
    window.setWindowTitle("Hello PyQt!")
    

    相关文章

      网友评论

          本文标题:【Qt】信号与槽

          本文链接:https://www.haomeiwen.com/subject/rjtftctx.html