我正在尝试使用QCheckBox
小部件显示布尔变量的值,并使用户无法更改显示的值。我不想禁用它,因为由此产生的灰色看起来不太好。我试图通过在用户单击QCheckBox
. 但是,由于小部件的状态由QAbstractButton
父类的“已检查”属性和QCheckBox
类本身的“状态”属性描述,因此问题更加复杂。这引起了信号和槽的组合练习,我一直无法获得任何好的结果。
var_ctrl = QtGui.QCheckBox( 'some name' )
def rdslot1(state):
if state == QtCore.Qt.Checked:
var_ctrl.setCheckState( QtCore.Qt.Unchecked )
else:
var_ctrl.setCheckState( QtCore.Qt.Checked )
def rdslot2(state):
if var_ctrl.isChecked():
var_ctrl.setChecked(False)
else:
var_ctrl.setChecked(True)
# Signal/Slot combinations (only one should be active)
var_ctrl.stateChanged.connect( rdslot1 )
var_ctrl.toggled.connect( rdslot2 )
var_ctrl.stateChanged.connect( rdslot2 )
var_ctrl.toggled.connect( rdslot1 )