原文: https://pythonspot.com/wxpython-buttons/

要创建按钮,只需调用wx.Button()。 使用wx.Button()创建按钮时,将面板解析为第一个参数很重要。 我们将其附加到面板上,因为将其附加到框架上将使其全屏显示。

面板使您可以选择将小部件放置在窗口中的任何位置。 参数(10, 10)是面板上的位置。id参数是必需的,但它等于-1wx.ID_ANY == -1)。 第三个参数是按钮上的文本。

您可以使用下面的代码在 wxPython 中创建一个按钮:

  1. #!/usr/bin/python
  2. import wx
  3. def onButton(event):
  4. print "Button pressed."
  5. app = wx.App()
  6. frame = wx.Frame(None, -1, 'win.py')
  7. frame.SetDimensions(0,0,200,50)
  8. panel = wx.Panel(frame, wx.ID_ANY)
  9. button = wx.Button(panel, wx.ID_ANY, 'Test', (10, 10))
  10. button.Bind(wx.EVT_BUTTON, onButton)
  11. frame.Show()
  12. frame.Centre()
  13. app.MainLoop()

如果按下按钮,则调用onButton()函数。 我们将其与button.Bind(wx.EVT_BUTTON, onButton)绑定(连接)。

输出:

wxPython 按钮 - 图1

使用 wxPython 创建的按钮

按钮上的图像

wxPython 支持在按钮上使用图像。 只需稍作更改即可在按钮上显示图像。 虽然该函数称为wx.BitmapButton,但它支持其他图像格式。

  1. bmp = wx.Bitmap("call-start.png", wx.BITMAP_TYPE_ANY)
  2. button = wx.BitmapButton(panel, id=wx.ID_ANY, bitmap=bmp,
  3. size=(bmp.GetWidth()+10, bmp.GetHeight()+10))

第一行加载图像,第二行创建按钮。

完整代码:

  1. #!/usr/bin/python
  2. import wx
  3. def onButton(event):
  4. print "Button pressed."
  5. app = wx.App()
  6. frame = wx.Frame(None, -1, 'win.py')
  7. frame.SetDimensions(0,0,200,70)
  8. panel = wx.Panel(frame, wx.ID_ANY)
  9. bmp = wx.Bitmap("call-start.png", wx.BITMAP_TYPE_ANY)
  10. button = wx.BitmapButton(panel, id=wx.ID_ANY, bitmap=bmp,
  11. size=(bmp.GetWidth()+10, bmp.GetHeight()+10))
  12. button.Bind(wx.EVT_BUTTON, onButton)
  13. button.SetPosition((10,10))
  14. frame.Show()
  15. frame.Centre()
  16. app.MainLoop()

输出:

wxPython 按钮 - 图2

wxButton