gpt4 book ai didi

python - PyQt QTableWidgetItem 子类的 Init 方法

转载 作者:行者123 更新时间:2023-11-30 23:54:13 26 4
gpt4 key购买 nike

我想对 QTableWidgetItem 进行子类化,以便我的子类可以有一个额外的“id”属性。

不幸的是,我有点困惑,因为 PyQt 文档 here显示四种不同的 init 方法。

要为我的“QTableWidgetItemWithId”子类创建我自己的 init 方法(它还会传递额外的“id”参数),我应该使用 *args、**kwargs 吗?如果是这样,正确的语法是什么?

非常感谢

最佳答案

我想说这在某种程度上取决于您的品味和您认为可读的内容以及您想要保持子类的灵 active 。您可以将任何您想要的内容添加到构造函数中,然后将所需的内容传递给 QTableWidgetItem 的构造函数。有很多方法可以做到这一点。我个人尽量避免 *args 和 **kwargs。

from PyQt4.QtGui import QTableWidgetItem

class ATableWidgetItem(QTableWidgetItem):

def __init__(self, id, *args, **kwargs):
super(ATableWidgetItem, self).__init__(*args, **kwargs)
self.id = id

a = ATableWidgetItem(0)
b = ATableWidgetItem(0, QTableWidgetItem.UserType)
c = ATableWidgetItem(0, "text", type=QTableWidgetItem.UserType)

class AnotherTableWidgetItem(QTableWidgetItem):

def __init__(self, id):
super(AnotherTableWidgetItem, self).__init__()
self.id = id

d = AnotherTableWidgetItem(0)

class YetAnotherTableWidgetItem(QTableWidgetItem):

def __init__(self, id, text="", type=QTableWidgetItem.Type):
super(YetAnotherTableWidgetItem, self).__init__(text, type)
self.id = id

e = YetAnotherTableWidgetItem(0)
f = YetAnotherTableWidgetItem(0, "Hello")
g = YetAnotherTableWidgetItem(0, "Hello", QTableWidgetItem.UserType)

关于python - PyQt QTableWidgetItem 子类的 Init 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5284648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com