一个简单拉手 (handle) 的部件. 拉手可以向前或往后拉动,常用于为一个特定任务选取一个数值。
比如打算在程序中输入顾客的年龄. 对于诸如此类的目的,wx.Slider 将会是一个好选择。
专题教程:wxpython中文教程
wx.Slider 样式有:
wxSL_HORIZONTAL
wxSL_VERTICAL
wxSL_AUTOTICKS
wxSL_LABELS
wxSL_LEFT
wxSL_RIGHT
wxSL_TOP
wxSL_BOTTOM
wxSL_INVERSE
关于 pageSize – 指用户在往上或往下翻页时,滑块跳动多少步 (steps).
例子:
#!/usr/bin/python
#coding=utf-8
#gauge.py
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition,
(300, 150))
panel=wx.Panel(self, -1)
vbox=wx.BoxSizer(wx.VERTICAL)
hbox=wx.BoxSizer(wx.HORIZONTAL)
self.sld = wx.Slider(panel, -1, 200, 150, 500, wx.DefaultPosition,
(250, -1),
wx.SL_AUTOTICKS | wx.SL_HORIZONTAL | wx.SL_LABELS)
self.sld.SetPageSize(5)
btn1 = wx.Button(panel, 8, '调 整')
btn2 = wx.Button(panel, 9, '关 闭')
wx.EVT_BUTTON(self, 8, self.OnAdjust)
wx.EVT_BUTTON(self, 9, self.OnClose)
vbox.Add(self.sld, 1, wx.ALIGN_CENTER)
hbox.Add(btn1, 1, wx.RIGHT, 10)
hbox.Add(btn2, 1)
vbox.Add(hbox, 0, wx.ALIGN_CENTER | wx.ALL, 20)
panel.SetSizer(vbox)
def OnAdjust(self, event):
val = self.sld.GetValue()
self.SetSize((val*2, val))
def OnClose(self, event):
self.Close()
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, 'slider.py')
frame.Show(True)
frame.Center()
return True
app = MyApp(0)
app.MainLoop()
本例中,一个滑块以及两个按钮. 滑块的初始位置设置为 200.
其最小值为 150,最大值为 500. 在点击调整按钮时,框架大小就会改变. 其高度设置为滑块选择值,宽度为该值的 2 倍.
如图: