19. Popovers¶
The Gtk.Popover
is a separate window used for displaying additional
information and is often used with button menus and context menus.
Popovers are visually connected to a related widget with a small triangle.
Their uses are similar to those of dialog windows with the advantage of being less
disruptive and having a connection with the widget the popover is pointing to.
A Popover can be created with Gtk.Popover
; for opening the popover use
Gtk.Popover.popup()
.
19.1. Custom Popover¶
A widget can be added to a popover using Gtk.Container.add()
.
19.1.1. Example¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import gi gi.require_version("Gtk", "3.0") from gi.repository import Gtk class PopoverWindow(Gtk.Window): def __init__(self): super().__init__(title="Popover Demo") self.set_border_width(10) self.set_default_size(300, 200) outerbox = Gtk.Box(spacing=6, orientation=Gtk.Orientation.VERTICAL) self.add(outerbox) self.popover = Gtk.Popover() vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) vbox.pack_start(Gtk.ModelButton(label="Item 1"), False, True, 10) vbox.pack_start(Gtk.Label(label="Item 2"), False, True, 10) vbox.show_all() self.popover.add(vbox) self.popover.set_position(Gtk.PositionType.BOTTOM) button = Gtk.MenuButton(label="Click Me", popover=self.popover) outerbox.pack_start(button, False, True, 0) win = PopoverWindow() win.connect("destroy", Gtk.main_quit) win.show_all() Gtk.main() |