19. Popovers
O Gtk.Popover
é uma janela separada usada para exibir informações adicionais e é frequentemente usada como parte de menus de botão e menus de contexto. Os popovers estão visualmente conectados a um widget relacionado com um pequeno triângulo. Seus usos são semelhantes aos das janelas de diálogo, com a vantagem de ser menos prejudicial e ter uma conexão com o widget para o qual o popover está apontando.
Um Popover pode ser criado com Gtk.Popover
; para abrir o popover, use Gtk.Popover.popup()
.
19.1. Popover Personalizado
Um widget pode ser adicionado a um popover usando o Gtk.Container.add()
.
19.1.1. Exemplo
1import gi
2
3gi.require_version("Gtk", "3.0")
4from gi.repository import Gtk
5
6
7class PopoverWindow(Gtk.Window):
8 def __init__(self):
9 super().__init__(title="Popover Demo")
10 self.set_border_width(10)
11 self.set_default_size(300, 200)
12
13 outerbox = Gtk.Box(spacing=6, orientation=Gtk.Orientation.VERTICAL)
14 self.add(outerbox)
15
16 self.popover = Gtk.Popover()
17 vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
18 vbox.pack_start(Gtk.ModelButton(label="Item 1"), False, True, 10)
19 vbox.pack_start(Gtk.Label(label="Item 2"), False, True, 10)
20 vbox.show_all()
21 self.popover.add(vbox)
22 self.popover.set_position(Gtk.PositionType.BOTTOM)
23
24 button = Gtk.MenuButton(label="Click Me", popover=self.popover)
25 outerbox.pack_start(button, False, True, 0)
26
27
28win = PopoverWindow()
29win.connect("destroy", Gtk.main_quit)
30win.show_all()
31Gtk.main()