Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 选中另一个QPushButton时禁用两个QPushButton_Python_Qt_Pyqt - Fatal编程技术网

Python 选中另一个QPushButton时禁用两个QPushButton

Python 选中另一个QPushButton时禁用两个QPushButton,python,qt,pyqt,Python,Qt,Pyqt,我的程序中有3个按钮x,y,z。当另一个QpushButton x处于可检查模式时,我必须将2个按钮y、z设置为禁用。 当X处于可检查模式时,应禁用其他X。 我该怎么做? 提前谢谢 我的代码: self.btn_mpgX.setCheckable(True) self.btn_mpgY.setEnabled(False); self.btn_mpgZ.setEnabled(False); self.btn_mpgX.toggled.connect(self.btn

我的程序中有3个按钮x,y,z。当另一个QpushButton x处于可检查模式时,我必须将2个按钮y、z设置为禁用。 当X处于可检查模式时,应禁用其他X。 我该怎么做? 提前谢谢

我的代码:

    self.btn_mpgX.setCheckable(True)
    self.btn_mpgY.setEnabled(False);
    self.btn_mpgZ.setEnabled(False);
    self.btn_mpgX.toggled.connect(self.btn_mpgXuncheckable)

def btn_mpgXuncheckable(self):
    self.btn_mpgY.setEnabled(True);
    self.btn_mpgZ.setEnabled(True);
    self.btn_mpgX.toggled.connect(self.initUI) 

预期行为:一个可检查的QPushButton X,在选中/未选中时禁用/启用两个常规QPushButton Y和Z。如果我错了,请更正我

与示例代码一样,您可以使用信号toggledbool checked。布尔值允许您知道按钮是选中还是未选中,并且您可以相应地启用/禁用其他按钮

import sys
import PyQt4.QtCore as QtCore
import PyQt4.QtGui as QtGui

class MyWidget(QtGui.QWidget):
    def __init__(self, parent=None):
        super(MyWidget, self).__init__(parent)

        self.buttonX=QtGui.QPushButton("X")
        self.buttonY=QtGui.QPushButton("Y")
        self.buttonZ=QtGui.QPushButton("Z")

        self.buttonX.setCheckable(True)
        self.buttonX.toggled.connect(self.on_check_X)

        #layout
        hbox=QtGui.QHBoxLayout()
        hbox.addWidget(self.buttonX)
        hbox.addWidget(self.buttonY)
        hbox.addWidget(self.buttonZ)
        self.setLayout(hbox)

    def on_check_X(self,is_toggle):
        if is_toggle:
            self.buttonY.setEnabled(False)
            self.buttonZ.setEnabled(False)
        else:
            self.buttonY.setEnabled(True)
            self.buttonZ.setEnabled(True)

if __name__ == "__main__":  
    app = QtGui.QApplication(sys.argv)
    win= MyWidget()
    win.show()    
    sys.exit(app.exec_())