在 PyQt PushButton 单击期间发送附加变量[重复]

2024-03-05

我是 Python 和 PyQt 的新手,这是我的第一个应用程序。目前,当单击按钮时,toggleLED() checks 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')

Problem:现在,如果我们想要控制多个 LED 并记住它们各自的切换状态,最佳实践是什么?

我似乎也无法传递额外的价值toggleLED() with 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')

您可以使用partial为了那个原因:

from functools import partial

btn1.clicked.connect(partial(self.toggleLED, 1))

这允许您将多个参数传递给函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PyQt PushButton 单击期间发送附加变量[重复] 的相关文章

随机推荐