如何在wxpython中设置相对位置?
我有一个wxpython的列表框,它的高度设置为-1,这意味着它会自动调整到窗口的高度。请问有没有办法在窗口底部留出200像素的空间呢?
简单来说,我想要的是(窗口高度 - 200),这样就能在底部留出200像素的空白。
如果设置为-1,它就会占满整个窗口的高度。
谢谢。
补充说明:我好像在我的代码中无法实现这个功能;
COLORS = ["red", "blue", "black", "yellow", "green"]
NUMBERS = ['0', '1', '2', '3', '4']
image=[];
import random
import wx
class images_tab(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
## random test useless t = wx.StaticText(self, -1, "This is a PageOne object", (20,20))
self.listBox = wx.ListBox(self, size=(200, -1), choices=image, style=wx.LB_SINGLE)
# self.button = wx.Button(self, label="Something else here? Maybe!")
self.sizer = wx.BoxSizer()
self.sizer.Add(self.listBox, proportion=0, flag=wx.ALL | wx.EXPAND, border=5)
# self.sizer.Add(self.button, proportion=1, flag=wx.ALL)
self.SetSizer(self.sizer)
class MyNotebook(wx.Notebook):
def __init__(self, *args, **kwargs):
wx.Notebook.__init__(self, *args, **kwargs)
class MyPanel(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
self.notebook = MyNotebook(self, size=(220, -1))
Images__tab = images_tab(self.notebook)
# add the pages to the notebook with the label to show on the tab
self.notebook.AddPage(Images__tab, "Click here to lookat pictures")
self.sizer = wx.BoxSizer()
self.sizer.Add(self.notebook, proportion=0, flag=wx.EXPAND)
#self.sizer.Add(self.button, proportion=0) #with button
self.SetSizer(self.sizer)
class MainWindow(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.SetTitle("Python: Pictures")
self.panel = MyPanel(self)
app.frame = wx.Frame(parent=None, id=-1, size=(300,400))
self.Show()
app = wx.App(False)
win = MainWindow(None, size=(600, 400))
app.MainLoop()
1 个回答
0
把它放进一个大小调整器里:mysizer.Add(myListBox, 0, wx.BOTTOM, 200)
补充说明:或者你可以用 wx.GetDisplaySize() 来获取窗口的宽度和高度,然后从高度中减去200,再用这个值来设置列表框的大小。