GUI Controls In Python

Introduction

 
In Python, we can create GUI controls using various libraries listed below, 
  • Tkinter  (python GUI toolkit)
  • jpython (provide access to java class libraries in python)
  • wxPython (open-source toolkit for wxwindow)
In this article, we will focus on Tkinter because tkinter is very easy to use for creating GUI controls and provides object-oriented interfaces. Before creating controls, we need to create window form (we used IDLE python 3.5), open a new file to write our source code. (shown in the picture below).
 
 
Now the file is open and we will write our code in this file, let's go.
 
Before creating controls, we create window form, 
  1. from tkinter import* #import tkinter module
  2. w=Tk() #creating window form
  3. w.geometry("600x600") #set hight and width of window form
  4. w.title("controls in python") # set tile of windows form
our window form created, we add(create) controls in our windows form
 
Button
 
The button is the tkinter widgets that allow performing users to define a function on window form like click event or execute a function on button click.
  1. b=Button(w,text="say hello").pack() #creating button  
Our button is created on our windows form. 
 
Check Button
 
Check button is a gui control that is used in performing operations on user input and also used for input fixed input form user,
  1. C1 = Checkbutton(w, text = "Music",onvalue = 1, offvalue = 0, height=2,width = 20).pack()#check button  
  2. C2 = Checkbutton(w, text = "Video",onvalue = 1, offvalue = 0, height=2,width = 20).pack()#check button  
Check button is created on our window form,
 
Entry  & Label
 
Entry is just like a text box, entry is used for input and output. 
 
Label is used for text on windows form,
  1. L1 = Label(w, text="User Name").pack() #label  
  2. E1 = Entry(w).pack() # entry  
entry and label are created. 
 
List Box
 
The Listbox widget is used to provide a list of options to a user,
  1. L2 = Label(w, text="list box").pack()  #label  
  2. Lb1 = Listbox(w)   #list box  
  3. Lb1.insert(1, "Python")         # adding value into list box  
  4. Lb1.insert(2, "c# corner")     # adding value into list box  
  5. Lb1.insert(3, "C")         # adding value into list box  
  6. Lb1.insert(4, "PHP")   # adding value into list box  
  7. Lb1.insert(5, "C#")      # adding value into list box  
  8. Lb1.insert(6, "asp")    # adding value into list box  
  9. Lb1.pack()  
list box is created.
 
Menu Button
 
The Menubutton widget is used to display menus in our application.
  1. mb= Menubutton ( w, text="click me", relief=RAISED )    
  2. mb.menu = Menu ( mb, tearoff = 0 )    
  3. mb["menu"] = mb.menu    
  4. a = IntVar()    
  5. b = IntVar()    
  6. mb.menu.add_checkbutton ( label="AJAY",variable=a )    
  7. mb.menu.add_checkbutton ( label="MALIK",variable=b )    
  8. mb.pack()    
Menubuttion is created.
 
Message 
 
Is just used for dispaly text on window form, 
  1. var = StringVar()  
  2. label = Message( w, textvariable=var, relief=RAISED )  
  3. var.set("Hey!? How are you doing?")  
  4. label.pack()  
Message is created
 
Spinbox 
 
Spinbox widget is Tkinter Entry widget, which can be used to select from a fixed number of values.
  1. s = Spinbox(w, from_=0, to=10)  
  2. s.pack()  
Spinbox is created. 
 
Canvas
 
The Canvas is a rectangular area for drawing pictures or other controls. You can place graphics, text, widgets or frames on a Canvas.
  1. C = Canvas(w, bg="blue", height=250, width=300) # bg for color   
  2. coord = 10, 50, 240, 210  
  3. arc = C.create_arc(coord, start=0, extent=150, fill="red")  
  4. C.pack()  
Canvas is created. 
 
Finally we created some GUI controls and our source code for all controls are:
  1. from tkinter import* #import tkinter module  
  2. w=Tk() #creating window form  
  3. w.geometry("600x600") #set hight and width of window form  
  4. w.title("controls in python") # set tile of windows form  
  5. b=Button(w,text="say hello") #creating button  
  6. b.pack()  
  7. C1 = Checkbutton(w, text = "python",onvalue = 1, offvalue = 0, height=2,width = 20).pack()#check button  
  8. C2 = Checkbutton(w, text = "C# corner",onvalue = 1, offvalue = 0, height=2,width = 20).pack()#check button  
  9. L1 = Label(w, text="User Name").pack() #label  
  10. E1 = Entry(w).pack() # entry  
  11. L2 = Label(w, text="list box").pack() #label  
  12. Lb1 = Listbox(w) #list box  
  13. Lb1.insert(1, "Python") # adding value into list box  
  14. Lb1.insert(2, "Perl") # adding value into list box  
  15. Lb1.insert(3, "C") # adding value into list box  
  16. Lb1.insert(4, "PHP") # adding value into list box  
  17. Lb1.insert(5, "JSP") # adding value into list box  
  18. Lb1.insert(6, "Ruby") # adding value into list box  
  19. Lb1.pack()  
  20. mb= Menubutton ( w, text="click me", relief=RAISED )  
  21. mb.menu = Menu ( mb, tearoff = 0 )  
  22. mb["menu"] = mb.menu  
  23. a = IntVar()  
  24. b = IntVar()  
  25. mb.menu.add_checkbutton ( label="AJAY",variable=a )  
  26. mb.menu.add_checkbutton ( label="MALIK",variable=b )  
  27. mb.pack()  
  28. var = StringVar()  
  29. label = Message( w, textvariable=var, relief=RAISED )  
  30. var.set("Hey!? How are you doing?")  
  31. label.pack()  
  32. s = Spinbox(w, from_=0, to=10)  
  33. s.pack()  
  34. C = Canvas(w, bg="blue", height=250, width=300)  
  35. coord = 10, 50, 240, 210  
  36. arc = C.create_arc(coord, start=0, extent=150, fill="red")  
  37. C.pack()  
  38. w.mainloop()  
Now run our application (pressed F5). Output is shown in the screenshot below:
 
 

Conclusion 

 
We learned in this article how to create controls, later on, we used these controls and will use their attributes in further articles.