在PyQt按钮cli期间发送附加变量

2024-10-01 09:23:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python和PyQt新手,这是我的第一个应用程序。当前单击按钮时,toggleLED()检查self.LedOn以决定是否打开LED。

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')

问题:如果我们想控制多个LED并记住它们各自的切换状态,那么最佳做法是什么?

我似乎也不能用btn.clicked.connect(self.toggleLED(btnNumber))将附加值传递给toggleLED()

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')

Tags: selfsourcedefconnectserialwriteoffsettext