Я новичок в Python и PyQt, и это мое первое приложение. В данный момент, когда нажата кнопка, toggleLED()
проверяет self.LedOn
, чтобы решить, включать ли светодиод.Отправить дополнительную переменную во время нажатия кнопки PyQt PushButton
class Screen(QWidget):
def initUI(self):
self.LedOn = 0
btn = QPushButton('Off', self)
btn.setCheckable(True)
btn.clicked.connect(self.toggleLED)
def toggleLED(self, pressed):
source = self.sender()
if self.LedOn:
source.setText('Off')
source.LedOn = 0
self.serial.write('L')
else:
source.setText('On')
source.LedOn = 1
self.serial.write('H')
Проблема: Теперь, если мы хотим, чтобы управлять несколькими светодиодами и помнить их индивидуальное состояние переключения, что является лучшей практикой?
Я также не могу показаться, чтобы передать дополнительную ценность toggleLED()
с btn.clicked.connect(self.toggleLED(btnNumber))
class Screen(QWidget):
def initUI(self):
btn1 = QPushButton('Off', self)
btn1.setCheckable(True)
btn1.LedOn= 0
btn1.clicked.connect(selftoggleLED(1))
btn2 = QPushButton('Off', self)
btn2.setCheckable(True)
btn2.LedOn= 0
btn2.clicked.connect(selftoggleLED(2))
def toggleLED(self, pressed, value):
source = self.sender()
if self.LedOn:
source.setText('Off')
self.serial.write(value)
self.serial.write('L')
else:
source.setText('On')
self.serial.write(value)
self.serial.write('H')
Я считаю, что вам нужно подклассифицировать QPushButton и каким-то образом переопределить нажатые или нажатые сигналы emmiters, чтобы вернуть желаемое значение, но я не могу найти, как это сделать в документации pyqt –