实战wxPython系列-038
状态栏是一个狭窄的窗口,可以沿着框架的底部放置,以提供少量的状态信息。它可以包含一个或多个字段,其中一个或多个字段的长度可以根据窗口的大小而变化。在wxPython中控件wx.StatusBar提供了状态栏的功能。
一、wx.StatusBar简介
wx.StatusBar控件用于显示应用程序状态信息。它可以分为几个部分来展示不同的信息。可以将其他控件插入到wx.StatusBar中,有两种方法可以为主窗口创建一个状态栏,一种是手动创建自己的wx.StatusBar并调用SetStatusBar()方法,另一种方法是调用CreateStatusBar()方法创建(默认创建方法)。
wx.StatusBar支持的窗口样式:
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()方法将控件的名称显示出来。
三、本文知识点
前一篇:wxPython - 基本控件之滚动条ScrollBar
页面更新:2024-04-27
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号