Open In App

Python – HeaderBar in GTK+ 3

Last Updated : 03 Jun, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

A Gtk.HeaderBar is same as the horizontal Gtk.Box, it allows to place children at the start or the end and title to be displayed. GTK+ supports Client Side Decoration hence we can use a Gtk.HeaderBar in place of the title bar. The title will be centered with respect to the width of the box. A Gtk.HeaderBar is usually located across the top of a window and should contain commonly used controls which affect the content below. They also provide access to window controls, including the close window button and window menu.

Follow below steps:

  1. import GTK+ 3 module.
  2. Create main window.
  3. Create HeaderBar.
  4. Create Button.
  5. Create Box.

Example:




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, Gio
  
  
class HeaderBarWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title ="GfG")
        self.set_border_width(10)
        self.set_default_size(400, 400)
  
        # Create HeaderBar.
        hb = Gtk.HeaderBar()
        hb.set_show_close_button(True)
        hb.props.title = "Geeks for Geeks"
        self.set_titlebar(hb)
          
        # Create Button
        button = Gtk.Button()
        icon = Gio.ThemedIcon(name ="mail-send-receive-symbolic")
        image = Gtk.Image.new_from_gicon(icon, Gtk.IconSize.BUTTON)
        button.add(image)
        hb.pack_end(button)
   
        # Create Box
        box = Gtk.Box(orientation = Gtk.Orientation.HORIZONTAL)
        Gtk.StyleContext.add_class(box.get_style_context(), "linked")
  
        button = Gtk.Button()
        button.add(Gtk.Arrow(Gtk.ArrowType.LEFT, Gtk.ShadowType.NONE))
        box.add(button)
  
  
        hb.pack_start(box)
  
        self.add(Gtk.TextView())
  
  
win = HeaderBarWindow()
win.connect("destroy", Gtk.main_quit)
# Display the window.
win.show_all()
# Start the GTK + processing loop
Gtk.main()


Output :



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads