PyQt信号的操作

1、案例

 

 槽函数:实现打印这句话。

当用户点击按钮时,会产生clicked信号,将该信号与按钮连接。

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("信号与槽")
        self.resize(500, 500)

        self.Object_信号与槽2()

    def Object_信号与槽2(self):
        # 当我点击按钮的时候会打印一句话
        # self是因为最后要添加到窗口上,所以传入窗口对象
        btn = QPushButton(self)
        btn.setText("点击我")

        def cao():
            print("点我干啥!")

        # 连接信号与槽
        btn.clicked.connect(cao)

2、案例2

 连接窗口标题变化的信号与槽:windowTitleChanged.connect()将信号与槽连接。

通过window.setWindowTitle()方法修改标题时,会触发该信号,触发与信号关联的槽。

需要获取最新标题:槽函数中传入标题。

方法一:通过使信号与槽断开连接,在重新连接。

window = QWidget()
    # 连接窗口标题变化的信号 与 槽
    def cao_function(title):
        #print("窗口标题变化了!", title)
        window.windowTitleChanged.disconnect()
        # 或者临时终止
        #window.blockSignals(True)
        window.setWindowTitle("新课-" + title)
        window.windowTitleChanged.connect(cao_function)

    window.windowTitleChanged.connect(cao_function)

    window.setWindowTitle("Hello Sz")
    window.show()
    sys.exit(app.exec_())

方法二:直接使用暂停

window.blockSignals(True)

方法一:调用window.setWindowTitle()方法,会发出信号,修改标题,信号与槽连接,再将信号与槽断开,修改标题为新标题,因为信号与槽断开连接,所以使用该方法并不会在调用槽函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

。七十二。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值