我创建了一个弹出窗口,但是textcrl没有完全展开来填充窗口。如果我改用StaticText,效果会很好(但是如果内容太大,那么我需要滚动条,这就是我现在使用TextCtrl的原因)。请提供一些指导。在
self.description = WindowPopup(self, wx.SIMPLE_BORDER, content)
btn = event.GetEventObject()
dw = wx.DisplaySize()[0]
width = self.description.GetSize()[0]
y = btn.ClientToScreen((0,0))[1]
height = btn.GetSize()[1]
x = dw - width - 20 - 10
self.description.Position((x, y), (0, height))
self.description.Show(True)
class WindowPopup(wx.PopupWindow):
""" Pops up a window to provide description for the selection """
def __init__(self, parent, style, content):
wx.PopupWindow.__init__(self, parent, style)
self.SetSize((700, 287))
panel = wx.Panel(self)
sizer = wx.BoxSizer(wx.VERTICAL)
st = wx.TextCtrl(self, -1, style = wx.TE_MULTILINE | wx.TE_READONLY)
st.SetValue(content)
sizer.Add(st, 0, wx.EXPAND)
panel.SetSizer(sizer)
实际答案是:
感谢Joran注意到布局()。在
PopupWindow不需要额外的面板,因为窗口本身可以设置sizer。这是通过使用wxpythonwidget检查工具实现的。在
确保textcrl和PopupWindow的大小相同。在
我怀疑你的问题是这个面板没有弹出窗口那么大。。。因此,尽管textfield正在扩展以填充其sizer区域,但它并没有填充弹出窗口本身。在
试着用像
还要确保你在某个时候调用layout(注意这是完全未经测试的。。。所以它可能需要一些软呢,或者更糟的是,只是搞错了…)
相关问题 更多 >
编程相关推荐