【发布时间】:2015-11-18 18:09:08
【问题描述】:
通常,当我们将特定小部件添加到 wxwidgets 中的 sizer 时,我们将对齐和边框标志指定为 ( .... ,wxALIGN_RIGH | wxLEFT | wxRIGHT , 10 )
我的要求是我想要左边框 10 和右边框 20 ,我如何通过标志组合来实现这一点或者是一种方法?
【问题讨论】:
标签: alignment wxpython wxwidgets
通常,当我们将特定小部件添加到 wxwidgets 中的 sizer 时,我们将对齐和边框标志指定为 ( .... ,wxALIGN_RIGH | wxLEFT | wxRIGHT , 10 )
我的要求是我想要左边框 10 和右边框 20 ,我如何通过标志组合来实现这一点或者是一种方法?
【问题讨论】:
标签: alignment wxpython wxwidgets
我认为您无法按照自己想要的方式进行操作。
您必须从命令中省略 wx.RIGHT 并在框中添加一个额外的虚拟小部件:
hbox.Add((dummy,-1, wx.LEFT,20))
如果尝试在垂直框中进行:
vbox.Add((-1, 20))
例如
#!/usr/bin/python
# -*- coding: utf-8 -*-
# border.py
import wx
class Example(wx.Frame):
def __init__(self, parent, title):
super(Example, self).__init__(parent, title=title,
size=(260, 180))
self.InitUI()
self.Centre()
self.Show()
def InitUI(self):
panel = wx.Panel(self)
panel.SetBackgroundColour('#4f5049')
vbox = wx.BoxSizer(wx.VERTICAL)
hbox = wx.BoxSizer(wx.HORIZONTAL)
midPan = wx.Panel(panel)
midPan.SetBackgroundColour('#ededed')
dummy = wx.StaticText(panel, wx.ID_ANY, "")
midPan2 = wx.Panel(panel)
midPan2.SetBackgroundColour('#1f1f1f')
hbox.Add(midPan, -1, wx.LEFT|wx.TOP, border=10 )
hbox.Add(dummy,-1, wx.LEFT,border=20)
hbox.Add(midPan2, -1, wx.RIGHT, border=10)
vbox.Add(hbox)
panel.SetSizer(vbox)
if __name__ == '__main__':
app = wx.App()
Example(None, title='Border')
app.MainLoop()
【讨论】: