Узнать какой QCheckBox выбрал пользователь
Есть программа на Python с использованием PyQt5.
Имеются 2 checkBox, которые отвечают за выбор пола (названия: PolMuzh, PolZhen)
Я написал функцию, при которой, если один из чекбоксов нажат, второй чекбокс нажать нельзя.
Мне нужно узнать какой чекбокс выбрал пользователь и мне нужно, чтобы я мог использовать выбор.
self.PolMuzh.stateChanged.connect(self.selectCombo1)
self.PolZhen.stateChanged.connect(self.selectCombo2)
def selectCombo1(self, toggle):
if toggle == QtCore.Qt.Checked:
self.PolZhen.setEnabled(False)
else:
self.PolZhen.setEnabled(True)
def selectCombo2(self, toggle):
if toggle == QtCore.Qt.Checked:
self.PolMuzh.setEnabled(False)
else:
self.PolMuzh.setEnabled(True)
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
class Window(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.checkOne = QtWidgets.QCheckBox('one')
self.checkTwo = QtWidgets.QCheckBox('two')
self.label = QtWidgets.QLabel()
self.cb = ''
self.vlayout = QtWidgets.QVBoxLayout()
self.vlayout.addWidget(self.checkOne)
self.vlayout.addWidget(self.checkTwo)
self.vlayout.addWidget(self.label)
self.setLayout(self.vlayout)
self.checkOne.stateChanged.connect(self.selectBooks1)
self.checkTwo.stateChanged.connect(self.selectBooks2)
self.user_selected() # +
def selectBooks1(self, toggle):
if toggle == QtCore.Qt.Checked:
self.cb = 'пользователь выбрал: one'
self.checkTwo.setEnabled(False)
else:
self.cb = ''
self.checkTwo.setEnabled(True)
self.user_selected()
def selectBooks2(self, toggle):
if toggle == QtCore.Qt.Checked:
self.cb = 'пользователь выбрал: two'
self.checkOne.setEnabled(False)
else:
self.cb = ''
self.checkOne.setEnabled(True)
self.user_selected()
def user_selected(self):
if self.cb:
self.label.setText(self.cb)
else:
self.label.setText('пользователь пока ничего не выбрал.')
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = Window()
w.show()
app.exec_()
