DrawingAreaにビットマップ画像を表示する

作って使う文字起こしツール

実際は DrawingArea で小分け動画を再生する機能を持たせたいのですが、ミニスクリプトでは動作確認のために画像を表示することにします。


画像を1枚だけ表示

動作テスト - 画像を1枚だけ表示
# temp.py
# テスト用ミニスクリプト

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, GdkPixbuf, Gdk


class MyWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="テスト用ミニスクリプト")
        self.drwArea = Gtk.DrawingArea()
        self.drwArea.connect("draw", self.on_draw)

        self.box = Gtk.Box()
        self.add(self.box)
        self.box.pack_start(self.drwArea, True, True, 0)

        self.connect("destroy", Gtk.main_quit)
        self.show_all()

    def on_draw(self, widget, cr):
        # set picture
        self.pixbuf = GdkPixbuf.Pixbuf.new_from_file("smilingcat.jpg")
        Gdk.cairo_set_source_pixbuf(cr, self.pixbuf, 0, 0)
        cr.paint()


if __name__ == '__main__':
    window = MyWindow()
    Gtk.main()

Python 

関連記事