本文介绍按钮,位图按钮,滑动块,微调控制器**、、
按钮
基本按钮
创建一个按钮,绑定点击事件,点击后修改Label
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import wx
class ButtonFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, 'Button Example', size=(200,100)) panel = wx.Panel(self, -1) self.button = wx.Button(panel, -1, "hello", pos=(50,20)) self.Bind(wx.EVT_BUTTON, self.OnClick, self.button) self.button.SetDefault()
def OnClick(self, event): self.button.SetLabel("Clicked")
if __name__=='__main__': app = wx.PySimpleApp() frame = ButtonFrame() frame.Show() app.MainLoop()
|
运行结果
Button的构造函数
wx.Button(parent, id, label, pos, size=wxDefaultSize, style=0, validator, name=”button“)
位图按钮
构造两个位图按钮,将焦点放在第一个位图按钮上,绑定点击事件,关闭窗体
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import wx
class BitmapButtonFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, "Bitmap Button Example", size=(400,300)) panel = wx.Panel(self, -1) bmp = wx.Image("test.bmp", wx.BITMAP_TYPE_BMP).ConvertToBitmap() self.button = wx.BitmapButton(panel, -1, bmp, pos=(10,20)) self.Bind(wx.EVT_BUTTON, self.OnClick, self.button) self.button.SetDefault() self.button2 = wx.BitmapButton(panel, -1, bmp, pos=(200, 20), style=0) self.Bind(wx.EVT_BUTTON, self.OnClick, self.button2)
def OnClick(self, event): self.Destroy()
if __name__=='__main__': app = wx.PySimpleApp() frame = BitmapButtonFrame() frame.Show() app.MainLoop()
|
运行结果
PS
self.button.SetDefault()使按钮获得焦点,按下回车也能激活事件
滑动块
创建两个滑动块,一个横向,一个纵向
大专栏 wxpython(2)--按钮,位图按钮,滑动块,微调控制器pan class="line">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import wx
class SliderFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, "Slide Example", size=(300,350)) panel = wx.Panel(self, -1) self.count = 0 slider = wx.Slider(panel, 100, 25, 1, 100, pos=(10,10), size=(250,-1), style=wx.SL_HORIZONTAL|wx.SL_AUTOTICKS|wx.SL_LABELS) slider.SetTickFreq(5) slider = wx.Slider(panel, 100, 25, 1, 100, pos=(125,70), size=(-1,250), style=wx.SL_VERTICAL|wx.SL_AUTOTICKS|wx.SL_LABELS) slider.SetTickFreq(50)
if __name__=="__main__": app = wx.PySimpleApp() frame = SliderFrame() frame.Show() app.MainLoop()
|
运行结果
构造函数
wx.Slider(parent, id, value, minValue, maxValue, pos=wxDefaultPosition, size=wx.DefaultSize, style=wx.SL_HORIZONTAL, validator=wx.DefaultValidator, name=”slider”)
value是滑块的初始值
minValue和maxValue是两端的值
样式
wx.SL_AUTOTICKS:如果设置这个样式,则滑块将显示刻度。刻度间的间隔通过
SetTickFreq方法来控制。
wx.SL_HORIZONTAL:水平滑块。这是默认值。
wx.SL_LABELS:如果设置这个样式,那么滑块将显示两头的值和滑块的当前只读值。有些平台可能不会显示当前值。
wx.SL_LEFT:用于垂直滑块,刻度位于滑块的左边。
wx.SL_RIGHT:用于垂直滑块,刻度位于滑块的右边。
wx.SL_TOP:用于水平滑块,刻度位于滑块的上部。
wx.SL_VERTICAL:垂直滑块。
微调控制器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import wx
class SpinnerFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, "Spinner Example", size=(100,100)) panel = wx.Panel(self, -1) sc = wx.SpinCtrl(panel, -1, "", (30,20), (80,-1)) sc.SetRange(1,100) sc.SetValue(5)
if __name__=="__main__": app = wx.PySimpleApp() frame = SpinnerFrame() frame.Show() app.MainLoop()
|
运行结果
构造函数
wx.SpinCtrl(parent, id=-1, value=wx.EmptyString, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.SP_ARROW_KEYS, min=0, max=100, initial=0, name=”wxSpinCtrl”)
PS:
可以使用SetRange(minVal, maxVal) 和 SetValue(value)方法来设置范围和值。
SetValue()函数要求一个字符串或一个整数。要得到值,使用方法:GetValue()(返回一个整数), GetMin(), 和 GetMax()。
下一篇,我们介绍进度条,复选框,单选按钮,单选框,列表框