Python PyQt QTableWidgetItem子类的Init方法
我想对QTableWidgetItem进行子类化,这样子类就可以有一个额外的“id”属性 不幸的是,我有点困惑,因为PyQt文档显示了四种不同的init方法 要为我的“QTableWidgetItemWithId”子类创建自己的init方法(该子类还将传入一个额外的'id'参数),我应该使用*args、**kwargs吗?如果是,正确的语法是什么Python PyQt QTableWidgetItem子类的Init方法,python,pyqt,Python,Pyqt,我想对QTableWidgetItem进行子类化,这样子类就可以有一个额外的“id”属性 不幸的是,我有点困惑,因为PyQt文档显示了四种不同的init方法 要为我的“QTableWidgetItemWithId”子类创建自己的init方法(该子类还将传入一个额外的'id'参数),我应该使用*args、**kwargs吗?如果是,正确的语法是什么 非常感谢我相信您可以为您的小部件项定义尽可能多的构造函数。重写的基本方法是 Qt有一个演示项目,其中有一个自定义的QTableWidgetItem子体
非常感谢我相信您可以为您的小部件项定义尽可能多的构造函数。重写的基本方法是 Qt有一个演示项目,其中有一个自定义的QTableWidgetItem子体:其中定义了自定义的QTableWidgetItem:
希望这有帮助,关于 < P>我会说这取决于你的品味和你认为可读的东西,以及你想保持你的子类的灵活性。 您可以向构造函数添加任何需要的内容,只需将所需内容交给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)
谢谢我来看看。