我正在使用大字体的python应用程序,我正在使用wxPython 2.8.12。当有超过30个项目时,这会导致wx.Choice控件的选择窗口非常大。我希望子类选择能够在添加滚动之前设置要显示的项目数。这是方法DoSetSize第570行中的choice.cpp中的硬编码值:
size_t nItems = GetCount();
if (!HasFlag(wxCB_SIMPLE))
{
if ( !nItems )
nItems = 9;
else if ( nItems > 30 )
nItems = 30;
}
我有办法以某种方式覆盖这个吗?我已经尝试在我的子类中重写DoGetSize方法,但根本不起作用。这是不可能的,因为它是在c ++源代码中实现的吗?
答案 0 :(得分:1)
请参阅https://wiki.wxpython.org/OverridingMethods
虽然新的wxPython Phoenix中的内容已经有所改变,DoSetSize
现在已经可以覆盖了,但在这种情况下它可能对你没有任何帮助,因为大多数其余的代码都在wxChoice::DoSetSize
的C ++实现正在使用或设置不在公共API中且不能从Python中获取的内容。