# -*- coding: utf-8 -*-import wxclasscustomStatusBar(wx.StatusBar):
def __init__(self, parent):
wx.StatusBar.__init__(self,parent,-1)
self.SetFieldsCount(2)
self.SetStatusWidths([-2,-1])
self.count=0print parent.GetSize()
self.gauge=wx.Gauge(self,1001,100,pos=(2,2),size=(parent.GetSize()[0],20),style =wx.GA_HORIZONTAL)
self.gauge.SetBezelFace(3)
self.gauge.SetShadowWidth(3)
self.gauge.SetValue(50)classpriceFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, U'带进度条的状态栏', size=(410, 385),
style=wx.MINIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION |wx.CLOSE_BOX)
self.openfilename=''self.status=customStatusBar(self)
self.SetStatusBar(self.status)if __name__ == '__main__':
app=wx.PySimpleApp()
frame= priceFrame(parent=None, id=-1)
frame.Show()
app.MainLoop()
CreateStatusBar()用来增加一个状态栏。
SetFieldsCount()方法设置将状态分为几个区。
SetStatusText()用于设置状态栏内容。
SetStatusWidth()用于设置各栏宽度,该方法要求一个整数的Python列表作为参数,列表的长度必须和状态栏中哉的数量一致。按列表中整数的顺序来计算对应域的宽度。如果整数是正值,那么宽度是固定的。如果你想域的宽度随框架的变化而变化,那么应该使用负值。负值的绝对值代表域的相对宽度;可以把它认为是所占总宽度的比例。例如调用statusbar.SetStatusWidth([-1, -2,-3])方法所导致的各域从左到右的宽度比例是1:2:3。
statusBar = wx.StatusBar(self, -1)# 实例化 wx.StatusBar
statusBar.SetFieldsCount(3) # 状态栏分成3个区域
statusBar.SetStatusWidths([-1,-1,-1]) #区域宽度比列,用负数
statusBar.SetStatusText("A Custom StatusBar...", 0) #给状态栏设文字
self.SetStatusBar(statusBar) #将状态栏附加到框架上
statusBar = self.CreateStatusBar() #调用框架wx.frame的CreateStatusBar方法
statusBar.statusBar.SetFieldsCount(3) # 状态栏分成3个区域
statusBar.SetStatusWidths([-1,-1,-1]) #区域宽度比列,用负数
statusBar.SetStatusText("A Custom StatusBar...", 0) #给状态栏设文字