wx.静态箱不考虑尺寸参数

2024-10-06 12:25:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个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大小。如何使盒子符合硬编码大小?在


Tags: 代码textselfboxadd面板size部件
1条回答
网友
1楼 · 发布于 2024-10-06 12:25:56

如果在创建StaticBox后添加以下内容,则将强制为您设置大小:

box.SetMaxSize((200,200))

请注意,StaticText框不会换行其文本,因此如果文本比StaticBox宽,它将超出框的边缘(至少在OS X上,它会这样做,在Windows上可能会有不同的行为)。在

更新:

在Windows上,大小调整的行为大不相同,StaticBox只是缩小了文本的大小。在

虽然我同意bogdan的观点,即显式地使用SetMinSize或{}设置窗口大小可能不是一个好主意(例如,如果系统字体大小发生变化,并且内容不再适合您设置的大小约束),StaticText控件收缩到其内容的大小,并显示为与它一起拉取所有内容,除非您显式地对其容器强制执行大小限制。在

我怀疑您在这里唯一的选择是在框控件上使用SetMaxSize或{},或者尝试使用StaticText之外的其他控件选项。您可以尝试使用HtmlWindow作为替代。在

相关问题 更多 >