Python – HeaderBar in GTK+ 3
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:
- import GTK+ 3 module.
- Create main window.
- Create HeaderBar.
- Create Button.
- 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 = "Beginner for Beginner" 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 :