wxPython - 状态栏StatusBar

实战wxPython系列-038

状态栏是一个狭窄的窗口,可以沿着框架的底部放置,以提供少量的状态信息。它可以包含一个或多个字段,其中一个或多个字段的长度可以根据窗口的大小而变化。在wxPython中控件wx.StatusBar提供了状态栏的功能。

一、wx.StatusBar简介

wx.StatusBar控件用于显示应用程序状态信息。它可以分为几个部分来展示不同的信息。可以将其他控件插入到wx.StatusBar中,有两种方法可以为主窗口创建一个状态栏,一种是手动创建自己的wx.StatusBar并调用SetStatusBar()方法,另一种方法是调用CreateStatusBar()方法创建(默认创建方法)。

wx.StatusBar支持的窗口样式:

wx.StatusBar常用方法

图1:wx.StatusBar类继承关系

二、wx.StatusBar演示

#状态栏(wx.StatusBar)

import wx

class SampleStatusBar(wx.Frame):

    def __init__(self, *args, **kw):
        super(SampleStatusBar, self).__init__(*args, **kw)

        self.InitUi()

    def InitUi(self):
        #设置标题
        self.SetTitle("实战wxPython: 状态栏演示")
        #设置窗口尺寸
        self.SetSize(360, 240)

        panel = wx.Panel(self)

        button = wx.Button(panel, label="按钮", pos = (20, 20))
        chkBox = wx.CheckBox(panel, label="复选框", pos = (20, 90))
        cmbBox = wx.ComboBox(panel, pos = (120, 22), choices=["Python", "Ruby"])
        slider = wx.Slider(panel, 5, 6, 1, 10, (120, 90), (110, -1))

        panel.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter)
        button.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter)
        chkBox.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter)
        cmbBox.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter)
        slider.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter)

        self.sb = self.CreateStatusBar()

        self.Centre()

    def OnWidgetEnter(self, e):
        name = e.GetEventObject().GetClassName()
        self.sb.SetStatusText(name + "控件")
    
def main():
    app = wx.App()
    sample = SampleStatusBar(None)
    sample.Show()
    app.MainLoop()

if __name__ == "__main__":
    main()

在上面的例子中,在一个wx.Frame控件中放置了五个控件。如果将鼠标指针悬停在这些控件上,它的名称将显示在wx.StatusBar中。

panel.Bind(wx.EVT_ENTER_WINDOW, self.OnWidgetEnter)

如果我们进入一个控件的区域,就会生成EVT_ENTER_WINDOW事件。

self.sb = self.CreateStatusBar()

使用CreateStatusBar()方法创建状态栏。

def OnWidgetEnter(self, e):
        name = e.GetEventObject().GetClassName()
        self.sb.SetStatusText(name + "控件")

在OnWidgetEnter()方法中,根据鼠标输入得到控件的名称。然后使用SetStatusText()方法将控件的名称显示出来。

图2:wx.StatusBar演示

三、本文知识点


前一篇:wxPython - 基本控件之滚动条ScrollBar

展开阅读全文

页面更新:2024-04-27

标签:省略号   字段   字符串   控件   宽度   样式   文本   窗口   状态   方法

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top