Python GTK+3 チュートリアル

15. アイコンビュー

翻訳して勉強するGtkチュートリアル第15章 IconView です。


Gtk.IconView は、アイコンのコレクションをグリッドビューに表示するウィジェットです。ドラッグ&ドロップ、複数選択、アイテムの並び替えなどの機能をサポートしています。

Gtk.TreeView と同様に、Gtk.IconView Gtk.ListStore をモデルに使用します。Gtk.IconView はセル・レンダラを使用する代わりに、Gtk.ListStore のカラムのどれかに GdkPixbuf.Pixbuf オブジェクトが含まれている必要があります。

Gtk.IconView は多数の選択モードをサポートしており、一度に複数のアイコンを選択したり、選択を一つの項目だけに制限したり、項目を完全に選択できないようにしたりすることができます。選択モードを指定するには、Gtk.IconView.set_selection_mode() メソッドを Gtk.SelectionMode 選択モードの一つと一緒に使用します。

15.1. 例

動作テスト - IconView
# tut15.py
# アイコンビュー サンプル

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):
        Gtk.Window.__init__(self)
        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()


関連記事