在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()
注意:提供的代码是一个精简的示例 - 实际代码看起来略有不同。
答案 0 :(得分:0)
问题是根据documentation:
请注意,对齐样式(wxTE_LEFT,wxTE_CENTRE和wxTE_RIGHT)可以 在wxMSW和wxGTK上创建控件后动态更改。 wxTE_READONLY,wxTE_PASSWORD和包装样式可以是动态的 在wxGTK下更改但不是wxMSW。其他样式只能设置 在控制创建期间。
所以不要改变使用wxComboCtrl::SetTextCtrlStyle所需的样式,如文档中所示。