You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击一个pushButton时禁用另一个pushButton的实现方法(新手求助)

解决点击按钮时禁用另一个按钮的问题

你的代码逻辑有误,clicked.connect() 用于将按钮的点击信号绑定到槽函数,它的返回值是 None,所以你写的 if 判断永远不会成立,禁用按钮的代码根本不会执行。

下面是几种正确的实现方式:

方式一:在目标槽函数中添加禁用逻辑

把禁用按钮的代码放到你绑定的 idbox_test 函数里,这样按钮点击触发函数时,首先执行禁用操作:

def idbox_test(self):
    # 禁用pushButton_PTT
    self.pushButton_PTT.setEnabled(False)
    # 这里写原函数的业务逻辑
    # ...

方式二:通过lambda同时执行禁用和原函数

如果不想修改 idbox_test 函数,可以用lambda表达式在绑定信号时,同时触发禁用操作和原函数:

self.pushButton_IDBOX.clicked.connect(lambda: [self.pushButton_PTT.setEnabled(False), self.sa_h.idbox_test()])

如果 idbox_test 需要接收参数,只需在lambda里传递对应参数即可。

方式三:执行完函数后恢复按钮状态(可选)

如果需要在函数执行完成后重新启用按钮,可以用try...finally保证无论函数是否报错,按钮都会恢复:

def idbox_test(self):
    self.pushButton_PTT.setEnabled(False)
    try:
        # 原函数的业务逻辑
        # ...
    finally:
        # 恢复按钮可用状态
        self.pushButton_PTT.setEnabled(True)

内容的提问来源于stack exchange,提问作者Lorenzo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:07:03