我想做一个新的wx.选择-比如控制(实际上是wx.选择)它使用wx.ItemContainer管理项目列表。下面是一个显示错误的最小示例:
import wx
class c(wx.ItemContainer):
def __init__(my): pass
x = c()
x.Clear()
此操作失败的原因是:
^{pr2}$
使用ItemContainer的其他控件似乎是wxWindows的内部控件,因此我可能无法以这种方式使用它。不过,这肯定会很方便。在
你知道我做错了什么吗?在
Tags:
在wx.ItemContainer不能直接实例化,例如try
它抛出错误
^{pr2}$原因是它是一种接口类型(如果我们可以在python中调用它),并且不能在它上调用
__init__
,而是将其用作第二个基并重写您使用的方法,例如你的怀疑是对的。你不能对WxWistGes的任何类型进行子类,因为它们在C++域中,并且只是名义上用Python包。相反,您需要一个Py*类,您可以将其子类化。解释在this Wiki entry on writing custom controls中给出。在
对于ItemContainer,似乎没有这样的包装器,而且ItemContainer被用作多重继承模式中的父级,这一事实甚至可能使问题复杂化。在
我怀疑从WxPython内部,可能不可能替换ItemContainer,如果你需要它,它必须在C++级别上集成。在相关问题 更多 >
编程相关推荐