wxPython - Image on button in Python
Last Updated :
24 Feb, 2023
Improve
In this particular article we will learn how can we add image to a button in GUI using wxPython. This can be achieved using BitmapButton() constructor of wx.BitmapButton class in wx. Following Window Styles are supported :
- wx.BU_LEFT: Left-justifies the bitmap label.
- wx.BU_TOP: Aligns the bitmap label to the top of the button.
- wx.BU_RIGHT: Right-justifies the bitmap label.
- wx.BU_BOTTOM: Aligns the bitmap label to the bottom of the button.
Syntax :
wx.StaticText(self, parent, id=ID_ANY, bitmap=NullBitmap, pos=DefaultPosition, size=DefaultSize, style=0, validator= DefaultValidator, name=StaticTextNameStr)Parameters :
Parameter Input Type Description parent wx.Window Parent window. Should not be None. id wx.WindowID Control identifier. A value of -1 denotes a default value. bitmap wx.Bitmap Bit to be displayed. pos wx.Point Window position. size wx.Window Window size. style long Window style. validator wx.Validator Window validator. name string Window name.
Example Code:
# import wxPython
import wx
# event function for button
def onButton(event):
print("Button pressed.")
app = wx.App()
frame = wx.Frame(None, -1, 'win.py')
frame.SetDimensions(0, 0, 200, 70)
panel = wx.Panel(frame, wx.ID_ANY)
# open image from disk
bmp = wx.Bitmap("/home/rahul101/Desktop/wxPython/images.png", wx.BITMAP_TYPE_ANY)
# create image button using BitMapButton constructor
button = wx.BitmapButton(panel, id = wx.ID_ANY, bitmap = bmp,
size =(bmp.GetWidth()+10, bmp.GetHeight()+10))
button.Bind(wx.EVT_BUTTON, onButton)
button.SetPosition((10, 10))
frame.Show()
frame.Centre()
app.MainLoop()
Output :