[英]How to decorate pyqt5 class using dataclass?
我嘗試使用 python3 數據類來裝飾 pyqt5 類,但在我的方法中似乎不起作用?
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from dataclasses import dataclass
@dataclass()
class Demo(QWidget):
name: str = 'jim'
addr: str = 'usa'
app = QApplication([])
win = Demo()
win.show()
app.exec()
在您的代碼中,您指出Qt
有一個名為Widget
的成員,這顯然是錯誤的,我建議您分析您提供的內容,因為它可能被認定為拼寫錯誤。
但即使更正該錯誤也不起作用,因為如果您在繼承自另一個類的類上實現數據類,則必須實現__post_init__
方法,您必須在其中調用super()
方法:
from dataclasses import dataclass
import sys
from PyQt5 import QtWidgets
@dataclass
class Demo(QtWidgets.QWidget):
name: str = "jim"
addr: str = "usa"
def __post_init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
win = Demo()
print(win.name, win.addr)
win.show()
sys.exit(app.exec_())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.