wxpython 状态栏StatusBar导致布局错乱问题

在窗口中加了个状态栏后,在切换页面时就出现了格式错乱的问题。
具体为从首页进入查看学生信息页面时,会覆盖左边操作按钮部分
在这里插入图片描述
在这里插入图片描述

解决方法:

回头看代码

class UserOperation(wx.Frame):
    '''
    操作界面
    '''
    def __init__(self, *args, **kw):
        # ensure the parent's __init__ is called
        super(UserOperation, self).__init__(*args, **kw)

        # 设置窗口屏幕居中
        self.Center()
        # 创建窗口
        self.pnl = wx.Panel(self)
        # 调用操作界面函数
        self.OperationInterface()
        # 创建菜单栏
        self.menu()
        self.status_bar() #这行位置不对

调用self.status_bar这行代码的位置改动一下即可

    def __init__(self, *args, **kw):
        # ensure the parent's __init__ is called
        super(UserOperation, self).__init__(*args, **kw)
        # 状态栏
        self.status_bar()
        # 设置窗口屏幕居中
        self.Center()
        # 创建窗口
        self.pnl = wx.Panel(self)
        
        # 调用操作界面函数
        self.OperationInterface()
        # 创建菜单栏
        self.menu()

**一定要放在self.pnl = wx.Panel(self)这行之前!**否则可能会出现各种各样的错误

最后附上status_bar()函数的代码,说一下基础的使用。
statusbar.SetStatusWidths([-1, -1, 100])是设定状态栏的长度比例的
负数代表比例,正数是长度绝对值,以-2,-1,100为例,先会给最右边分配100的长度,然后左边剩下的空间按2:1的比例分配给前两部分

def status_bar(self):
    statusbar = self.CreateStatusBar()  # 底部状态栏
    statusbar.SetFieldsCount(3)
    # 分割状态栏的比例为2:2:1,用负数表示
    statusbar.SetStatusWidths([-1, -1, 100])
    # 每部分状态栏显示的值,当鼠标停在menu上时,0号状态栏会临时显示上面menu里的提示信息
    statusbar.SetStatusText('1111', 0)
    statusbar.SetStatusText('2222', 1)
    statusbar.SetStatusText('3333', 2)

使用SetStatusText()就可以实时推送新的内容到状态栏

def OnLabelleftClick(self, event):
    # 每次点击更新状态栏推送新的位置,i是状态栏第几格
    self.statusbar.SetStatusText('Row {0}, Col{1}'.format(event.GetRow()+1, event.GetCol()+1), i=1)
    event.Skip() # 这行必须加
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值