wxpython核心部件wx.statusbar入门教程

发布时间:2020-04-27编辑:脚本学堂
有关wxpython中核心部件wx.statusbar的用法,介绍了创建 wx.StatusBar的两种方法,手动创建wx.StatusBar并调用 SetStatusBar方法,或调用CreateStatusBar方法。

在众多的wxpython核心部件中,wx.StatuBar 部件用于显示应用程序状态信息。

它可以被分为多个部分以显示不同类型的信息. 同时也可以将其它部件插入到 wx.StatusBar。
它可以作为对话框的一个替代,因为对话框常被滥用而为大多数用户所厌烦。

专题教程:wxpython中文教程

创建 wx.StatusBar 有两个方法.

一是手动创建自己的 wx.StatusBar 并调用 SetStatusBar() 方法.
二是简单地调用 CreateStatusBar() 方法.

后一个方法会创建一个默认的 wx.StatusBar.

例子,一个 wx.Frame 部件以及五个其它部件.
在将鼠标移到某个部件上时,该部件的描述就会在 wx.StatusBar 上显示出来.

代码:
 

复制代码 代码示例:

#!/usr/bin/python
#coding=utf-8
# www.plcxue.com
#statusbar.py

import wx

class MyStatusBar(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, size=(250, 200),
                          style=wx.CAPTION | wx.SYSTEM_MENU | wx.CLOSE_BOX)
       
        panel = wx.Panel(self, 1)
        button=wx.Button(panel, 2, '按 钮', (20, 20))
        text=wx.checkbox(panel, 3, '勾选框', (20, 90))
        combo=wx.ComboBox(panel, 4, '', (120, 22))
        slider=wx.Slider(panel, 5, 6, 1, 10, (120, 90), (110, -1))
       
       
        panel.Bind(wx.EVT_ENTER_WINDOW, self.EnterPanel, id=1)
        button.Bind(wx.EVT_ENTER_WINDOW, self.EnterButton, id=2)
        text.Bind(wx.EVT_ENTER_WINDOW, self.EnterText, id=3)
        combo.Bind(wx.EVT_ENTER_WINDOW, self.EnterCombo, id=4)
        slider.Bind(wx.EVT_ENTER_WINDOW, self.EnterSlider, id=5)

        self.sb = self.CreateStatusBar()
        self.SetMaxSize((250, 200))
        self.SetMinSize((250, 200))
        self.Center()
       
   
    def EnterButton(self, event):
        self.sb.SetStatusText('按钮部件')
        event.Skip()
       
    def EnterPanel(self, event):
        self.sb.SetStatusText('面板部件')
        event.Skip()
       
    def EnterText(self, event):
        self.sb.SetStatusText('勾选框部件')
        event.Skip()
       
    def EnterCombo(self, event):
        self.sb.SetStatusText('ComboBox 部件')
        event.Skip()
       
    def EnterSlider(self, event):
        self.sb.SetStatusText('滑块部件')
        event.Skip()
       
class MyApp(wx.App):
    def OnInit(self):
        frame=MyStatusBar(None, -1, 'statusbar.py')
        frame.Show(True)
        return True
   
app=MyApp(0)
app.MainLoop()

对于 GUI 程序,窗口中的每个部件都是一个小窗口.

如图:
<a href=http://www.jb200.com/python/wxpythonhexinbujian/ target=_blank class=infotextkey>wxpython核心部件</a>wx.statusbar