• wxpython(2)--按钮,位图按钮,滑动块,微调控制器


    本文介绍按钮,位图按钮,滑动块,微调控制器**、、


    按钮

    基本按钮

    创建一个按钮,绑定点击事件,点击后修改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()。

    下一篇,我们介绍进度条,复选框,单选按钮,单选框,列表框

  • 相关阅读:
    简单的 canvas 翻角效果
    浏览器中 大部分API
    @description iPhoneX炫彩渐变背景实现
    Vuex
    百度地图 逆地址解析
    android上传位置信息导致的流量大爆炸问题调查
    在win7下装ubuntu(硬盘版安装)及遇到的问题
    Android程序捕获未处理异常,处理与第三方方法冲突时的异常传递
    apk混淆打包注意事项
    IdeasToComeTrue
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12302698.html
Copyright © 2020-2023  润新知