在众多的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 程序,窗口中的每个部件都是一个小窗口.
如图: