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¶
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() |