In the last tutorial, we have discussed about the GetLabelText() function of wx.MenuItem class which is one of the important function of this class. Now, in this tutorial, we will discuss about another important function from the wx.MenuItem class of wxPython module i.e., SetBitmap() function.
What is SetBitmap() function?
The SetBitmap() is an important function associated with the wx.MenuItem class of wxPython module. The SetBitmap() function is used to sets the bitmap for the menu item in the menu bar. It must be called before we append the given item with the menu bar associated with it.
It means if we append an item in the menu bar without providing bitmap image in it, then it may be not possible for us to setup a bitmap image later in the menu bar. But we can change or reset the bitmap image from the menu bar if we have given it initially in the function while appending.
Syntax for SetBitmap() function:
Whenever we are using the SetBitmap() function of wxMenuItem class, we have to use the syntax correctly in order to set bitmap image correctly as menu item into the menu bar of GUI. Following is the correct syntax of using the SetBitmap() function of wxPython module in our Python program:
wx.SetBitmap( "bmp", "Check")
As we can see in the above given syntax for SetBitmap() function, it takes only two parameters that we have to define properly for execution of SetBitmap() function successfully.
Following are the description of the parameters that must be given in the SetBitmap() function:
- bmp: The bmp is the bitmap image given in the SetBitmap() function. This parameter is used to set the bitmap image for the menu bar. It will add the bitmap image as a menu item in the menu bar.
- checked: The checked is the value given in the SetBitmap() function. The bool value true will be used to check the image given and false value will be assigned to uncheck the image given in the function. It works like enabling or disabling the given image in the menu item of menu bar.
Let’s see an example of SetBitmap() function of wxMenuItem class, so that we can understand the concept of the SetBitmap() in a better way. Look at the following example:
In the following Python program, we will use the SetBitmap() function in the program and then we will run the program to add an bitmap image as a menu item in the menu bar of GUI screen. We will check this image also. Now, look at the following Python program of wxPython module functions:
# import the wxPython module in program
# define frame class with wxPythonExample name
# define the default init function for the GUI screen
def __init__(self, *args, **kwargs):
super(wxPythonExample, self).__init__(*args, **kwargs) # using super as a local function
# define the initUI function with self parameter
self.locale = wx.Locale(wx.LANGUAGE_ENGLISH)
# define the menu bar in the GUI Screen
self.menubar = wx.MenuBar()
self.fileMenu = wx.Menu() # fixing the menu
self.st = wx.StaticText(self, label ="", pos =(31, 31), style = wx.ALIGN_LEFT) # defining parameters for the static text shown in GUI
self.item = wx.MenuItem(self.fileMenu, 1, '&Check this awesome text written by TUTORIALANDEXAMPLE Developers\tCtrl + c', helpString ="Check for the Help") # defining unstriped text for the function
# use SetBitmap() function to add bitmap image in the GUI screen
self.item.SetBitmap(bmp = wx.Bitmap('cross.png'), checked = True)
self.fileMenu.Append(self.item) # creating the menu
self.menubar.Append(self.fileMenu, '&File and Drop Down Menu') # name of the menu
# label text from item
LabelText = self.item.GetLabelText('&Check this awesome text by TUTORIALANDEXAMPLE Developers\tCtrl + c') # using the GetLabelText() function
# print kind of menuitem
print(LabelText) # printing text in output of the program
self.st.SetLabel(LabelText) # calling out the text
self.SetSize((380, 270)) # setting dimension of menu bar
self.SetTitle('GUI Screen build by TUTORIALANDEXAMPLE Python Developers') # setting title of GUI Screen
# definig the default main() function of program
app = wx.App()
ex = wxPythonExample(None) # calling out the wxPythonExmple class
app.MainLoop() # using the MainLoop() function to display GUI
# using if statement in the program
if __name__ == '__main__':
main() # calling out the main function
>> Check this awesome text by TUTORIALANDEXAMPLE Developers
In the above Python program, first of all we have imported the wxPython module. After that, we have defined a frame class of wxPython module with name wxPythonExample and using the class parameter. Now, inside the frame class we are using various parameters and functions to set various functionalities in the frame class. After defining various parameters and using SetBitmap() function inside the wxPythonExample named frame class, we have defined the default main() function of the program. In the main() function, we have used various functions such as wx.App() function, ex.show() and app.MainLoop() function. After closing the main() function, we have used the if statement in our program. In the if statement, we have called the main() function of the program.
Parameters used inside the wxFrame class (wxPyyhonExample):
Following are the various functions and their explanation that we have used inside the frame class that we have defined in our program:
- First of all, we have defined the default __init__ function having default parameters in it i.e., self, *args and **kwargs.
- Then, we have defined the super function inside the default init function.
- Inside the init function, we have defined local function I.e., with having init parameters in it.
- Then, we have defined another function named as self.initUI().
- We have used the initUI function as the default function with the ‘self’ parameter in it.
- After that, we have defined the self locale function with arguments in it.
- Then, we have created the menu bar by using the self.MenuBar() function inside the initUI function.
- After that, we have used the ‘wx.Menu()’ to define the menu that we are defining in the menu bar of GUI screen.
- Then, we have defined the parameters of the static text (that we will be using in the GUI screen) using wx.StaticText() function.
- After that, we have used the MenuItem class to add items in the menu.
- We have used SetBitmap() function to add an image like the menu item in the menu bar. We have used the bool argument inside the SetBitmap() function to check the bitmap image we have added in the program.
- Then, we created the menu and fixed it with parameters using self.menubar.Append() function.
- After that, we have used the GetLabelText() function to change the unstriped text into striped text and show it on the GUI screen in the output.
- Then, we used the print statement to print the static text of GetLabelText() function in the output of the program.
- After that, we have used the various parameters for the tool bar such as size, title, style to set the dimensions, style and title of the menu in the menu bar that we are building and adding items in it.
- After that, we have closed the wxFrame class function.
Working of Program:
When we run the above program the interpreter first import the wxPython module in our Python program. Then, it goes to the main() function of the program, where we have called the frame class. In the frame class, the interpreter will run the various functions that we have defined inside it. It will add the bitmap image in the menu bar as a menu item. It will also print the static text in the output of program as we have used the print statement in the frame class. It will also add image and items in the menu that we have created. After that, when interpreter goes to the if statement part, it will again call out the main() function from the program. That’s how, the GUI screen will continuously display into our system’s screen once we run the program.
When we run the program, we will see the GUI screen with a menu present in it, in the menu bar section. When we click on the menu, we will see the list of items and options available in that menu. It will also show the static text that we have used in our program.
In this tutorial, we have learned that how can we add bitmap image as a menu item in the menu bar present in our GUI screen.