Nyx*_*nyx 4 python pyqt pyqt4 python-2.7
我是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')
Run Code Online (Sandbox Code Playgroud)
问题:现在,如果我们想要控制多个LED并记住它们的个别切换状态,那么最佳做法是什么?
我也似乎无法传递一个额外的价值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')
Run Code Online (Sandbox Code Playgroud)
你可以用partial它:
from functools import partial
btn1.clicked.connect(partial(self.toggleLED, 1))
Run Code Online (Sandbox Code Playgroud)
这允许您将多个参数传递给函数.
| 归档时间: |
|
| 查看次数: |
5187 次 |
| 最近记录: |