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
 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
from gi.repository.GdkPixbuf import Pixbuf

icons = ["edit-cut", "edit-paste", "edit-copy"]


class IconViewWindow(Gtk.Window):
    def __init__(self):
        super().__init__()
        self.set_default_size(200, 200)

        liststore = Gtk.ListStore(Pixbuf, str)
        iconview = Gtk.IconView.new()
        iconview.set_model(liststore)
        iconview.set_pixbuf_column(0)
        iconview.set_text_column(1)

        for icon in icons:
            pixbuf = Gtk.IconTheme.get_default().load_icon(icon, 64, 0)
            liststore.append([pixbuf, "Label"])

        self.add(iconview)


win = IconViewWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()