我正在尝试创建一个wx.StaticBox
具有恒定大小,而不管其中的小部件有多大。所以我有一个包含以下代码的面板:
box = wx.StaticBox(self, -1, 'BoxTitle', size=(200, 200))
bsizer = wx.StaticBoxSizer(box, wx.VERTICAL)
text = wx.StaticText(self, -1, 'Text')
bsizer.Add(text)
border = wx.BoxSizer()
border.Add(bsizer)
self.SetSizer(border)
但是,这个框只是将StaticText
小部件包装在里面,而不是坚持指定的200x200大小。如何使盒子符合硬编码大小?在
如果在创建
StaticBox
后添加以下内容,则将强制为您设置大小:请注意,
StaticText
框不会换行其文本,因此如果文本比StaticBox
宽,它将超出框的边缘(至少在OS X上,它会这样做,在Windows上可能会有不同的行为)。在更新:
在Windows上,大小调整的行为大不相同,
StaticBox
只是缩小了文本的大小。在虽然我同意bogdan的观点,即显式地使用}设置窗口大小可能不是一个好主意(例如,如果系统字体大小发生变化,并且内容不再适合您设置的大小约束),StaticText控件收缩到其内容的大小,并显示为与它一起拉取所有内容,除非您显式地对其容器强制执行大小限制。在
SetMinSize
或{我怀疑您在这里唯一的选择是在框控件上使用},或者尝试使用
SetMaxSize
或{StaticText
之外的其他控件选项。您可以尝试使用HtmlWindow
作为替代。在相关问题 更多 >
编程相关推荐