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

_images/iconview_example.png
 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()