Python – Create window button in GTK+ 3

GTK+ 3 is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License. Along with Qt, it is one of the most popular toolkits for the Wayland and X11 windowing systems. Let’s see how to create a window and a button using GTK+ 3.
Follow the below steps: 
 

  1. import GTK+ 3 module
  2. Create the main window.
  3. Create Button.

We have to import the Gtk module to be able to access GTK+’s classes and functions.
Note: In IDEs like Pycharm we can install a package named PyGObject in order to use GTK+ 3.
Code #1: Create an empty 200 x 200-pixel window. 
 

Python3




import gi
 
# Since a system can have multiple versions
# of GTK + installed, we want to make
# sure that we are importing GTK + 3.
gi.require_version("Gtk", "3.0")
 
from gi.repository import Gtk
 
# Creates an empty window.
window = Gtk.Window()
 
# Connecting to the window’s delete event
# to ensure that the application is terminated
# whenever we click close button
 
window.connect("destroy", Gtk.main_quit)
# Display the window.
window.show_all()
 
Gtk.main()


Output: 
 

Code #2: Create a button 
 

Python3




import gi
 
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
 
# Define our own newWindow class.
class newWindow(Gtk.Window):
    def __init__(self):
 
        # Call the constructor of the super class.
        # Set the value of the property title to Beginner for Beginner.
        Gtk.Window.__init__(self, title ="Beginner for Beginner")
 
        # Create a button widget, connect to its clicked signal
        # and add it as child to the top-level window.
        self.button = Gtk.Button(label ="Click Here")
        self.button.connect("clicked", self.on_button_clicked)
        self.add(self.button)
 
    # When we click on the button this method
    # will be called
    def on_button_clicked(self, widget):
        print("Beginner for Beginner")
 
 
win = newWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()


Output: