gpt4 book ai didi

python - 为 wx.TextCtrl 创建子类

转载 作者:行者123 更新时间:2023-12-01 05:56:43 26 4
gpt4 key购买 nike

我正在 wxpython 中为 wx.TextCtrl 创建一个子类。

我希望此类将额外数据添加到 wx.TextCtrl 小部件,类似于将额外数据添加到 ComboBox 或 ListBox 的方式。

这是我的代码:

import wx
class ExtraDataForTxtCtrl(wx.TextCtrl):

def __init(self, ExtraTextData):
self.ExtraTextData=ExtraTextData


def getExtraTCData(self):
return self.ExtraTextData

def setExtraTCData(self, ExtraTextData):
self.ExtraTextData=ExtraTextData

我的问题是我是Python新手,不知道如何实现它以及它是否正确。

最佳答案

import wx
class ExtraDataForTxtCtrl(wx.TextCtrl):

def __init__(self,*args,**kwargs):
self.ExtraTextData=kwargs.pop("ExtraTextData")
wx.TextCtrl.__init__(self,*args,**kwargs)


def getExtraTCData(self):
return self.ExtraTextData

def setExtraTCData(self, ExtraTextData):
self.ExtraTextData=ExtraTextData

可能更好的解决方案是使用 set/getattr

class DataTxtCtrl(wx.TextCtrl):

def __init__(self,*args,**kwargs):
self.datadict = {}
self.ExtraTextData=kwargs.pop("ExtraTextData")
wx.TextCtrl.__init__(self,*args,**kwargs)
def __getattr__(self,attr):
return self.datadict[attr]
def __setattr__(self,attr,val):
self.datadict[attr]=val

然后你可以设置许多变量并像平常一样使用它

   a = wx.App(redirect=False)
f = wx.Dialog(None,-1,"Example")
te = DataTxtCtrl(f,-1,"some_default")
te.somevar = "hello"
te.someother = "world"
print te.somevar+" "+te.someothervar
f.ShowModal()

关于python - 为 wx.TextCtrl 创建子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12168256/

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