登录界面

BoxSizer: 一个BoxSizer是一个垂直列、水平行,窗口部件在其中从左到右或从上到下布置在一条线上。

使用BoxSizer设置登录界面布局:

import  wx  # 导入wxPython
class MyFrame(wx.Frame):
    def __init__(self,parent,id):
        wx.Frame.__init__(self,parent,id,'用户登录',size=(400,300))
        # 创建面板
        penel = wx.Panel(self)

        # 创建'确定'和'取消'按钮,并绑定事件
        self.bt_confirm = wx.Button(penel,label='确定')
        self.bt_cancel = wx.Button(penel,label='取消')
        # 创建文本
        self.title = wx.StaticText(penel,label='请输入用户名和密码')
        self.label_user = wx.StaticText(penel,label='用户名:')
        self.text_user = wx.TextCtrl(penel,style=wx.TE_LEFT)
        self.label_pwd = wx.StaticText(penel,label='密  码:')
        self.text_password = wx.TextCtrl(penel,style=wx.TE_PASSWORD)
        # 添加容器,容器中控件横向列表
        hsizer_user = wx.BoxSizer(wx.HORIZONTAL)
        hsizer_user.Add(self.label_user,proportion=0,flag=wx.ALL,border=5)
        hsizer_user.Add(self.text_user,proportion=1,flag=wx.ALL,border=5)
        hsizer_pwd = wx.BoxSizer(wx.HORIZONTAL)
        hsizer_pwd.Add(self.label_pwd,proportion=0,flag=wx.ALL,border=5)
        hsizer_pwd.Add(self.text_password,proportion=1,flag=wx.ALL,border=5)
        hsizer_button = wx.BoxSizer(wx.HORIZONTAL)
        hsizer_button.Add(self.bt_confirm,proportion=0,flag=wx.ALIGN_CENTER,border=5)
        hsizer_button.Add(self.bt_cancel,proportion=0,flag=wx.ALIGN_CENTER,border=5)
        # 添加容器,容器中控件纵向排列
        vsizer_all = wx.BoxSizer(wx.VERTICAL)
        vsizer_all.Add(self.title,proportion=0,flag=wx.BOTTOM|wx.Top|wx.ALIGN_CENTER,border=15)
        vsizer_all.Add(hsizer_user,proportion=0,flag=wx.EXPAND|wx.LEFT|wx.RIGHT,border=45)
        vsizer_all.Add(hsizer_pwd,proportion=0,flag=wx.EXPAND|wx.LEFT|wx.RIGHT,border=45)
        vsizer_all.Add(hsizer_button,proportion=0,flag=wx.ALIGN_CENTER|wx.TOP,border=15)
        penel.SetSizer(vsizer_all)


if __name__ == '__main__':
    app = wx.App()  # 初始化
    frame = MyFrame(parent=None,id=-1)  # 实例化Frame类,并传递参数
    frame.Show()  # 显示窗口
    app.MainLoop() # 调用主循环方法

窗口:
在这里插入图片描述

首先创建按钮控件和文本控件,然后将他们添加到容器中,并且设置横向排列。接着设置纵向排列。在布局的过程中,通过设置每个控件的flag和border参数,实现控件位置间的布局

BoxSizer就会将绝对位置更改为相对位置的布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值