问题在于,
button.clicked.connect期望使用插槽(Python可调用对象),但是
lcd.display返回
None。因此,我们需要一个简单的函数(插槽)来
button.clicked.connect显示您新生成的值。这是工作版本:
import sysfrom PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLCDNumberfrom random import randintclass Window(QWidget): def __init__(self): super().__init__() self.initui() def initui(self): self.lcd = QLCDNumber(self) button = QPushButton('Generate', self) button.resize(button.sizeHint()) layout = QVBoxLayout() layout.addWidget(self.lcd) layout.addWidget(button) self.setLayout(layout) button.clicked.connect(self.handleButton) self.setGeometry(300, 500, 250, 150) self.setWindowTitle('Rand Integer') self.show() def handleButton(self): self.lcd.display(self.randomint()) def randomint(self): random = randint(2, 99) return randomif __name__ == '__main__': app = QApplication(sys.argv) ex = Window() sys.exit(app.exec_())


