wxPython Guage类
wxPython中的进度条控件称为 Gauge。Wx.Gauge类对象显示垂直或水平条,以图形方式显示递增数量。它通常用于演示复制文件或安装软件等过程的进展。
Wx.Gauge 控件可用于确定模式和不确定模式。当完成任何操作所需的时间可以相当准确地确定时,仪表进度条显示已完成任务的百分比。但是,在不确定模式下,它仅表示该过程正在进行中。
在确定模式中,进度位置定期更新。在不确定模式下,调用Pulse()函数将更新进度条。
Wx.Gauge类构造函数所需的参数是
wx.Gauge(parent, id, range, pos, size, style)
范围参数设置仪表的最大值。在不确定模式下,将忽略此参数。
Gauge类的可能样式参数是:
序号 | 参数和描述 |
---|---|
1 |
wx.GA_HORIZONTAL 进度条的水平布局 |
2 |
wx.GA_VERTICAL 进度条的垂直布局 |
3 |
wx.GA_SMOOTH 使用一个像素宽的更新步骤平滑进度条 |
4 |
wx.GA_TEXT 以百分比显示当前值 |
下表列出了此类的一些重要方法
序号 | 方法和描述 |
---|---|
1 |
GetRange() 返回仪表的最大值 |
2 |
SetRange() 设置仪表的最大值 |
3 |
GetValue() 返回仪表的当前值 |
4 |
SetValue( ) 以编程方式设置当前值 |
5 |
Pulse( ) 将仪表切换到不确定模式 |
范例
在以下示例中,在面板的垂直框大小调整器中添加了一个水平Gauge对象。
self.gauge = wx.Gauge(pnl, range = 20, size = (250, 25), style = wx.GA_HORIZONTAL)
还有一个按钮,其click事件与处理函数相关联。
self.btn1 = wx.Button(pnl, label = "Start") self.Bind(wx.EVT_BUTTON, self.OnStart, self.btn1)
处理函数OnStart()每秒后更新一次计量器的进度。
def OnStart(self, e): while True: time.sleep(1); self.count = self.count + 1 self.gauge.SetValue(self.count) if self.count >= 20: print "end" return
该示例的完整代码如下:
import wx import time class Mywin(wx.Frame): def __init__(self, parent, title): super(Mywin, self).__init__(parent, title = title,size = (300,200)) self.InitUI() def InitUI(self): self.count = 0 pnl = wx.Panel(self) vbox = wx.BoxSizer(wx.VERTICAL) hbox1 = wx.BoxSizer(wx.HORIZONTAL) hbox2 = wx.BoxSizer(wx.HORIZONTAL) self.gauge = wx.Gauge(pnl, range = 20, size = (250, 25), style = wx.GA_HORIZONTAL) self.btn1 = wx.Button(pnl, label = "Start") self.Bind(wx.EVT_BUTTON, self.OnStart, self.btn1) hbox1.Add(self.gauge, proportion = 1, flag = wx.ALIGN_CENTRE) hbox2.Add(self.btn1, proportion = 1, flag = wx.RIGHT, border = 10) vbox.Add((0, 30)) vbox.Add(hbox1, flag = wx.ALIGN_CENTRE) vbox.Add((0, 20)) vbox.Add(hbox2, proportion = 1, flag = wx.ALIGN_CENTRE) pnl.SetSizer(vbox) self.SetSize((300, 200)) self.Centre() self.Show(True) def OnStart(self, e): while True: time.sleep(1); self.count = self.count + 1 self.gauge.SetValue(self.count) if self.count >= 20: print "end" return ex = wx.App() Mywin(None,'wx.Gauge') ex.MainLoop()
上面的代码产生以下输出:
下一章:wxPython 滑块类
甲 滑块 呈现在其上的把手可以移动的槽的用户。它是一个控制有界值的经典小部件。手柄在凹槽上的位置等于控制器的下边界和上边界之间的整数。wxPython API包含wx.Slider类。它提供与滚动条相同的功能。Sl ...