I have 3 checkboxes that I have created in Designer using PyQt5. I am wanting to have the logic flow like this:
If any of the 2 checkboxes are checked, disable the last remaining checkbox. Once a checkbox is unchecked, the disabled checkbox should be re-enabled and so forth.
The "any of the 2 checkboxes are checked" is the part I am struggling with because I don't want to have a bunch of if statements creating this logic.
Here is my code thus far:
class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setFixedSize(250, 330)
self.setupUi(self)
self.sewage.stateChanged.connect(self.onStateChange)
self.water.stateChanged.connect(self.onStateChange)
self.internet.stateChanged.connect(self.onStateChange)
@pyqtSlot(int)
def onStateChange(self, state):
if state == Qt.Checked:
if self.sender() == self.sewage or self.sender() == self.internet:
self.water.setEnabled(False)
elif self.sender() == self.internet or self.sender() == self.water:
self.sewage.setEnabled(False)
elif self.sender() == self.water or self.sender() == self.sewage:
self.internet.setEnabled(False)
else:
self.water.setEnabled(True)
self.internet.setEnabled(True)
self.sewage.setEnabled(True)