首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用wx.BoxSizer定位按钮

使用wx.BoxSizer定位按钮
EN

Stack Overflow用户
提问于 2015-05-31 17:42:13
回答 1查看 1.6K关注 0票数 1

我使用wxPython 3.0.2.0版本测试wx.BoxSizer。

这就是我喜欢做的:

我会创建一个框架,包括一个面板与4个按钮。

我希望第一个按钮位于屏幕的左上角,第二个,右上角,第三个在左下角,第四个在右下角。

我将我的代码提交给你。

你能告诉我它是否正确吗?

提前谢谢你。

代码语言:javascript
复制
# -*- 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()
EN

回答 1

Stack Overflow用户

发布于 2015-06-01 00:04:54

我想我找到了在面板中定位按钮问题的解决方案。

我只是简单地使用了sizer wx.BoxSizer的Add方法的proportion参数。

我在下面提交了我修改后的代码,希望这能对其他像我一样的新手有所帮助。

代码语言:javascript
复制
# -*- 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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30555987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档