簡體   English   中英

如何使用數據類裝飾 pyqt5 類?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM