如何在 wxwidgets 中有不同大小的边框?
How to have border of different sizes in wxwidgets?
通常当我们将特定的小部件添加到 wxwidgets 中的 sizer 时,我们将对齐和边框标志指定为 ( .... ,wxALIGN_RIGH | wxLEFT | wxRIGHT , 10 )
我的要求是左边框为 10 ,右边框为 20 ,如何使用标志组合实现此目的或有什么方法可以实现?
我不认为你可以按照你想要的方式去做。
您必须从命令中省略 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()
通常当我们将特定的小部件添加到 wxwidgets 中的 sizer 时,我们将对齐和边框标志指定为 ( .... ,wxALIGN_RIGH | wxLEFT | wxRIGHT , 10 )
我的要求是左边框为 10 ,右边框为 20 ,如何使用标志组合实现此目的或有什么方法可以实现?
我不认为你可以按照你想要的方式去做。
您必须从命令中省略 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()