[英]wx.StaticBox size parameter not respected
我試圖創建一個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
之后添加以下StaticBox
,它將為您設置大小:
box.SetMaxSize((200,200))
請注意, StaticText
框不會包裝其文本,因此,如果您的文本比StaticBox
,它將超出框的邊緣(至少在OS X上StaticBox
,在Windows上可能會有所不同)。
更新:
在Windows上,大小調整行為有很大不同StaticBox
只是在文本周圍縮小。
盡管我同意bogdan的觀點,即用SetMinSize
或SetMaxSize
顯式設置窗口大小可能不是一個好主意(例如,如果系統字體大小更改並且內容不再完全符合您設置的大小限制),則StaticText控件會縮小為除非您在容器上明確強行限制大小,否則似乎會拉動它的內容。
我懷疑這里唯一的選擇要么是在框控件上使用SetMaxSize
或SetMinSize
,要么嘗試使用除StaticText
之外的其他控件選項。 您可以嘗試使用HtmlWindow
作為替代方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.