首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在wxpython的BoxSizer上对齐GUI元素-等距

在wxpython的BoxSizer上对齐GUI元素-等距
EN

Stack Overflow用户
提问于 2015-04-15 11:48:10
回答 1查看 134关注 0票数 0

我想知道如何(而不是使用GridBoxSizer)对齐面板上的元素,使元素之间的水平间距相等?现在,我想到了这个:

代码语言:javascript
复制
label1 = wx.StaticText(self, label="Emails Database File:")
label2 = wx.StaticText(self, label="Email Start Number")

sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(label1, 0, wx.ALL | wx.LEFT, 5)
sizer.Add(wx.StaticText(self, size=(20, 15)), 0, wx.ALL | wx.LEFT, 5)
sizer.Add(self.txtcontrol1, 1, wx.ALL | wx.LEFT, 5)
sizer.Add(self.chooseFileButton, 0, wx.ALL | wx.LEFT, 5)
mainSizer.Add(sizer, 0, wx.ALL | wx.EXPAND, 5)

sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(label2, 0, wx.ALL | wx.LEFT, 5)
sizer.Add(wx.StaticText(self, size=(25, 15)), 0, wx.ALL | wx.LEFT, 5)
sizer.Add(self.spin, 1, wx.ALL | wx.LEFT, 5)
sizer.Add(self.button, 0, wx.ALL | wx.LEFT, 5)
mainSizer.Add(sizer, 0, wx.ALL | wx.EXPAND, 5)

sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.infoLabel, 0, wx.ALL | wx.LEFT, 5)
mainSizer.Add(sizer, 0, wx.ALL | wx.EXPAND, 5)

sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(self.infoText, 1, wx.ALL | wx.LEFT, 5)
mainSizer.Add(sizer, 0, wx.ALL | wx.EXPAND, 5)

sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(self.progressBar, 1, wx.ALL | wx.LEFT, 5)
mainSizer.Add(sizer, 0, wx.ALL | wx.EXPAND, 5)

self.SetSizer(mainSizer)

Kubuntu上的KDE看起来不错,但在Mint上,XFCE和Windows (任何版本)的空间并不相等。所以我想知道,我该如何在每个操作系统上布置我的元素,使其看起来完全相同?

我能不能(怎么做?)在每个操作系统上计算水平间距的大小是否相等?

在Kubuntu上,它看起来很棒:http://s13.postimg.org/b9340sxbb/kubuntu.png

在Windows上,一点都不太好.:http://s23.postimg.org/4et87799n/win.png

当然,我可以为不同的OSes准备版本,但我想让它自动适应

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-16 12:32:53

在看到您发送的图像之后,我可以说GridBagSizer是满足您需求的最合适的测试工具。

但是,如果您只想使用一堆BoxSizer来完成这一任务,请使用AddStretchSpacer方法,而不是在测试器中添加一个空白的StaticText

wx.ALL覆盖wx.LEFT,这样就可以在与wx.ALL一起使用的任何地方删除wx.LEFT

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29649419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档