簡體   English   中英

wx.StaticBox大小參數不受尊重

[英]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的觀點,即用SetMinSizeSetMaxSize顯式設置窗口大小可能不是一個好主意(例如,如果系統字體大小更改並且內容不再完全符合您設置的大小限制),則StaticText控件會縮小為除非您在容器上明確強行限制大小,否則似乎會拉動它的內容。

我懷疑這里唯一的選擇要么是在框控件上使用SetMaxSizeSetMinSize ,要么嘗試使用除StaticText之外的其他控件選項。 您可以嘗試使用HtmlWindow作為替代方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM