更改 window wxChoice 的选择大小

Changing window selection size of wxChoice

我正在开发一个 python 大字体应用程序,我使用的是 wxPython 2.8.12。当有超过 30 个项目时,这会导致 windows 用于 wx.Choice 控件的非常大的选择。我想将 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++ 源代码中实现的吗?

https://wiki.wxpython.org/OverridingMethods

尽管在新的 wxPython Phoenix 中情况有所改变,并且 DoSetSize 现在在那里可以覆盖,但在这种情况下它可能对您没有任何帮助,因为其余的大部分wxChoice::DoSetSize 的 C++ 实现中的代码正在使用或设置不在 public API 中并且在 Python.

中不可用的内容