簡體   English   中英

帶wx.BoxSizer的位置按鈕

[英]Position buttons with wx.BoxSizer

我使用wxPython 3.0.2.0版本測試了wx.BoxSizer。

那就是我喜歡做的:

我將創建一個包含帶有4個按鈕的面板的框架。

我希望第一個按鈕位於屏幕的左上方,第二個,右上方,第三個位於屏幕的左下方和第四個右下方。

我將以下代碼提交給您。

你能告訴我是否正確嗎?

先感謝您。

# -*- coding: utf-8 -*-

import wx

class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, parent = None, title="Test of BoxSizer")
        vbox = wx.BoxSizer(wx.VERTICAL)
        hbox=wx.BoxSizer(wx.HORIZONTAL)
        hbox1=wx.BoxSizer(wx.HORIZONTAL)
        self.panel=wx.Panel(self)
        self.btn1=wx.Button(self.panel, label="Button 1")
        self.btn2=wx.Button(self.panel, label="Button 2")
        self.btn3=wx.Button(self.panel, label="Button 3")
        self.btn4=wx.Button(self.panel, label="Button 4")
        hbox.Add(self.btn1, proportion = 1, flag=wx.CENTER | wx.ALL, border=5)
        hbox.Add((0,0), proportion=4, flag=wx.EXPAND)
        hbox.Add(self.btn2, proportion = 1, flag=wx.CENTER | wx.ALL, border=5)
        hbox1.Add(self.btn3, proportion = 1, flag=wx.CENTER | wx.ALL, border=5)
        hbox1.Add((0,0), proportion=4, flag=wx.EXPAND)
        hbox1.Add(self.btn4, proportion = 1, flag=wx.CENTER | wx.ALL, border=5)
        vbox.Add(hbox, proportion = 1, flag=wx.CENTER | wx.ALL, border = 5)
        #vbox.Add((0,0), proportion = 1, flag=wx.EXPAND)
        vbox.Add(hbox1, proportion = 1, flag=wx.CENTER | wx.ALL, border = 5)
        self.panel.SetSizer(vbox)
        vbox.SetSizeHints(self)
        self.Centre()
if __name__ == '__main__':
    app = wx.App(redirect = False)
    frame = MyFrame()
    frame.Show(True)
    app.MainLoop()

我想找到了解決面板中按鈕位置問題的解決方案。

我只是使用了大小調整器wx.BoxSizer的Add方法的比例參數。

我在下面提交了更正后的代碼,希望對其他像我這樣的新手有幫助。

# -*- coding: utf-8 -*-

import wx

class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, parent = None, title="Test of BoxSizer")
        vbox = wx.BoxSizer(wx.VERTICAL)
        hbox=wx.BoxSizer(wx.HORIZONTAL)
        hbox1=wx.BoxSizer(wx.HORIZONTAL)
        self.panel=wx.Panel(self)
        self.btn1=wx.Button(self.panel, label="button 1")
        self.btn2=wx.Button(self.panel, label="button 2")
        self.btn3=wx.Button(self.panel, label="button 3")
        self.btn4=wx.Button(self.panel, label="button 4")
        hbox.Add(self.btn1, proportion = 1, flag=wx.CENTER | wx.ALL, border=5)
        hbox.Add((0,0), proportion=4, flag=wx.EXPAND)
        hbox.Add(self.btn2, proportion = 1, flag=wx.CENTER | wx.ALL, border=5)
        hbox1.Add(self.btn3, proportion = 1, flag=wx.CENTER | wx.ALL, border=5)
        hbox1.Add((0,0), proportion=4, flag=wx.EXPAND)
        hbox1.Add(self.btn4, proportion = 1, flag=wx.CENTER | wx.ALL, border=5)
        vbox.Add(hbox, proportion = 1, flag=wx.CENTER | wx.ALL, border = 5)
        #vbox.Add((0,0), proportion = 4, flag=wx.EXPAND)
        vbox.Add(hbox1, proportion = 1, flag=wx.CENTER | wx.ALL, border = 5)
        self.panel.SetSizer(vbox)
        vbox.SetSizeHints(self)
        self.Centre()
if __name__ == '__main__':
    app = wx.App(redirect = False)
    frame = MyFrame()
    frame.Show(True)
    app.MainLoop()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM