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 )