更改wxChoice的窗口选择大小

时间:2017-03-20 18:16:20

标签: python wxpython

我正在使用大字体的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 ++源代码中实现的吗?

1 个答案:

答案 0 :(得分:1)

请参阅https://wiki.wxpython.org/OverridingMethods

虽然新的wxPython Phoenix中的内容已经有所改变,DoSetSize现在已经可以覆盖了,但在这种情况下它可能对你没有任何帮助,因为大多数其余的代码都在wxChoice::DoSetSize的C ++实现正在使用或设置不在公共API中且不能从Python中获取的内容。