我不知道我做错了什么。我刚从Tkinter跳到wxPython,我想弄清楚BoxSizers。我想查这个问题,但我甚至不知道该查什么。这个面板填充了一个框架的空间,它应该显示一行文本,下面有一个进度条,所有这些都应该占据面板底部的1/5左右,水平居中(最终我会在它后面添加一个背景图像)。但是我只看到了文本,从顶部往下看了大约40%,与窗口的左边缘对齐。代码如下:
class KhPanel(wx.Panel):
def __init__(self, parent, configSet, selectWindow):
wx.Panel.__init__(self, parent=parent)
self.frame = parent
self.configSet = configSet
whichWindow = getattr(self, selectWindow)
whichWindow()
def configWindow(self):
gaugeWidth = (1/5)*self.configSet["width"]
gaugeHeight = (1/10)*self.configSet["height"]
gaugeMax = 100
topBuffer = (8/10)*self.configSet["height"]
itemSep = (1/16)*self.configSet["height"]
vSizer = wx.BoxSizer(wx.VERTICAL)
textSizer = wx.BoxSizer(wx.HORIZONTAL)
progressSizer = wx.BoxSizer(wx.HORIZONTAL)
configText = wx.StaticText(self, label="STUFF", style=wx.ALIGN_CENTER)
configProgressBar = wx.Gauge(self, range=gaugeMax, size=(gaugeWidth, gaugeHeight))
textSizer.Add(configText, 1, wx.ALIGN_CENTER, 0)
progressSizer.Add(configProgressBar, 1, wx.ALIGN_CENTER, 1)
vSizer.Add(textSizer, 1, wx.TOP, topBuffer)
vSizer.Add(progressSizer, 1, wx.TOP, itemSep)
self.SetSizer(vSizer)
vSizer.Fit(self)
return
如果你需要信息,配置集宽度和height是父窗口的宽度和高度(当前为340 x 270)。在本例中,selectWindow是“configWindow”
结合上面迈克·德里斯科尔的更正,我改变了间隔的方式,结果是工作量减少了。我拿出了水平尺寸器,因为我发现它们是不需要的,除非我要在同一行上隔开两个东西,我添加了拉伸间隔,而不是巨大的边框。这是新代码,它看起来正是我想要的:
运行此代码时,
gaugeWidth
和gaugeHeight
都被设置为零,这就是progressbar不显示的原因。这是因为你在做整数运算,所以1除以5等于0。与1/10相同。把这些行改成:然后仪表将出现。下面是一些完全可运行的代码,在不可命名的原始代码的基础上稍作修改:
相关问题 更多 >
编程相关推荐