16. IconView
A Gtk.IconView
é um widget que exibe uma coleção de ícones em uma visualização de grade. Ele possui suporte a recursos como arrastar e soltar, seleções múltiplas e reordenação de itens.
Similarmente a Gtk.TreeView
, Gtk.IconView
usa um Gtk.ListStore
para seu modelo. Em vez de usar renderizadores de célula, Gtk.IconView
requer que uma das colunas em seu Gtk.ListStore
contenha objetos GdkPixbuf.Pixbuf
.
Gtk.IconView
possui suporte a vários modos de seleção para permitir a seleção de vários ícones por vez, restringindo seleções para apenas um item ou desaprovando a seleção de itens completamente. Para especificar um modo de seleção, o método Gtk.IconView.set_selection_mode()
é usado com um dos modos de seleção Gtk.SelectionMode
.
16.1. Exemplo
1import gi
2
3gi.require_version("Gtk", "3.0")
4from gi.repository import Gtk
5from gi.repository.GdkPixbuf import Pixbuf
6
7icons = ["edit-cut", "edit-paste", "edit-copy"]
8
9
10class IconViewWindow(Gtk.Window):
11 def __init__(self):
12 super().__init__()
13 self.set_default_size(200, 200)
14
15 liststore = Gtk.ListStore(Pixbuf, str)
16 iconview = Gtk.IconView.new()
17 iconview.set_model(liststore)
18 iconview.set_pixbuf_column(0)
19 iconview.set_text_column(1)
20
21 for icon in icons:
22 pixbuf = Gtk.IconTheme.get_default().load_icon(icon, 64, 0)
23 liststore.append([pixbuf, "Label"])
24
25 self.add(iconview)
26
27
28win = IconViewWindow()
29win.connect("destroy", Gtk.main_quit)
30win.show_all()
31Gtk.main()