我在PyQt5和PySide2中测试了PEP 614,但收到消息:
QWidget:必须在QWidget之前构造一个QApplication
运行此消息后,尝试在python中为Qt使用灵活的装饰器
import random
import sys
from PyQt5.QtWidgets import (QApplication, QLabel, QPushButton, QVBoxLayout, QWidget)
from PyQt5.QtCore import (Qt)
class MyWidget(QWidget):
button = QPushButton('buttons')
def __init__(self):
super().__init__()
self.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"]
self.text = QLabel("Hello World")
self.text.setAlignment(Qt.AlignCenter)
self.layout = QVBoxLayout()
self.layout.addWidget(self.text)
self.setLayout(self.layout)
@button.clicked.connect
def magic(self):
self.text.setText(random.choice(self.hello))
if __name__ == "__main__":
app = QApplication(sys.argv)
widget = MyWidget()
widget.resize(800, 600)
widget.show()
sys.exit(app.exec_())