16. IconView
En Gtk.IconView
är en komponent som visar en samling ikoner i en rutnätsvy. Den stöder funktioner så som dra-och-släpp, flerval och att ändra ordning på objekt.
Liknande Gtk.TreeView
använder Gtk.IconView
en Gtk.ListStore
för sin modell. Istället för att använda cellrenderare, kräver Gtk.IconView
att en av kolumnerna i dess Gtk.ListStore
innehåller GdkPixbuf.Pixbuf
-objekt.
Gtk.IconView
stöder flera markeringslägen för att tillåta antingen markering av flera ikoner samtidigt, begränsa markeringar till bara ett objekt eller helt förbjuda markering av objekt. För att ange ett markeringsläge används metoden Gtk.IconView.set_selection_mode()
med ett av markeringslägena i Gtk.SelectionMode
.
16.1. Exempel
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()