如何在wxPython中创建多行wx.ComboCtrl?

时间:2012-03-17 20:19:44

标签: wxpython wxwidgets multiline

在ComboCtrl本身或相关的TextCtrl上设置wx.TE_MULTILINE样式标志后,刷新()后不会发生任何变化。经过一段时间的谷歌搜索,我看到几个消息来源表示显然创建多行组合 Box 是复杂/不可能的,但创建多行组合 Ctrl 很简单,他们没有提到它是如何完成的。显然我在这里做错了,但问题是什么?

class MultiCombo(wx.combo.ComboCtrl):
    def __init__(self, parent):
        wx.combo.ComboCtrl.__init__(self, parent, style=wx.TE_MULTILINE)

multicombo = MultiCombo(parent_panel)
##  multicombo.SetWindowStyle(wx.TE_MULTILINE)
multicombo.GetTextCtrl().SetWindowStyle(wx.TE_MULTILINE)
multicombo.GetTextCtrl().Refresh()
multicombo.Refresh()

注意:提供的代码是一个精简的示例 - 实际代码看起来略有不同。

1 个答案:

答案 0 :(得分:0)

问题是根据documentation

  

请注意,对齐样式​​(wxTE_LEFT,wxTE_CENTRE和wxTE_RIGHT)可以   在wxMSW和wxGTK上创建控件后动态更改。   wxTE_READONLY,wxTE_PASSWORD和包装样式可以是动态的   在wxGTK下更改但不是wxMSW。其他样式只能设置   在控制创建期间。

所以不要改变使用wxComboCtrl::SetTextCtrlStyle所需的样式,如文档中所示。

相关问题