如何使用wxpython设置相对位置?

如何使用wxpython设置相对位置?,python,wxpython,Python,Wxpython,我有一个wxpython列表框,它的高度设置为-1,这意味着它将自动设置为窗口的高度。有没有办法在窗口的末端留下一个200px 所以基本上我猜我要找的是(窗户高度-200),留下一个200的空间 -我会走到整个窗户高度 谢谢 编辑:我似乎无法让它与我的代码一起工作 COLORS = ["red", "blue", "black", "yellow", "green"] NUMBERS = ['0', '1', '2', '3', '4'] image=[]; import random imp

我有一个wxpython列表框,它的高度设置为-1,这意味着它将自动设置为窗口的高度。有没有办法在窗口的末端留下一个200px

所以基本上我猜我要找的是(窗户高度-200),留下一个200的空间

-我会走到整个窗户高度

谢谢

编辑:我似乎无法让它与我的代码一起工作

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()

将其放入一个sizer:mysizer.Add(myListBox,0,wx.BOTTOM,200)中


编辑:或者您可以使用wx.GetDisplaySize()获取窗口的宽度和高度,从高度中减去200,然后使用该值设置列表框的大小。

谢谢,但在我的示例中似乎不起作用,我已在说明中添加了代码。任何帮助都将不胜感激。我只是将下面的行改为:“self.sizer.Add(self.listBox,proportion=0,flag=wx.BOTTOM | wx.EXPAND,border=100)”,它似乎对我有用。也许我不明白你想要什么。您也可以在尺寸器中使用间隔符。谢谢,这是我想要的,但是现在它正在更改原始画布矩形位置。向尺寸器添加间隔符可能是您想要的,那么您知道如何向特定元素添加边框,例如wx.LEFT“self.sizer.Add(self.listBox,proportion=0,flag=wx.BOTTOM | wx.LEFT,border=100)”会给wx.BOTTOM和wx.LEFT都加上100个边框,有没有办法给wx.BOTTOM加上100个边框,给wx.LEFT加上50个边框?