Pixmap

Pixmap とは Gtk(というか X)での画像データ構造です。
■ Pixmap の生成

Gtk で画像を扱うには、まず Gdk::Pixmap のオブジェクトを作ります。 やり方は何種類かありますが、ここでは XPM 形式の外部ファイルから作る方法を説明します。

例:
pix, mask = Gdk::Pixmap.create_from_xpm(window,
					transparent_color,
					'filename')
filenameで示される XPM 形式ファイルから、 pixmap 形式の画像とマスク用のビットマップを生成します。 第1引数の window は Gdk::Window オブジェクトです。 第2引数の transparent_colorは普通 nil で構いません。

Gdk::Pixmap オブジェクトを作ったら、 Gtk::Pixmap ウィジェットとして表示できるようになります。

pm = Gtk::Pixmap.new(pix, mask)

■ 例: Pixmap を含んだボタン

Gtk::Button ウィジェットはコンテナウィジェットの一種で、 任意の子ウィジェットを含むことができます。 例えば pixmap とラベルウィジェットを含むボタンを作るには 次のようになります。

プログラム pixmap.rb:

require 'gtk'

window = Gtk::Window.new(Gtk::WINDOW_TOPLEVEL)
button = Gtk::Button.new
window.realize

pix, mask = Gdk::Pixmap.create_from_xpm(window.window, nil, 'test.xpm')
pm = Gtk::Pixmap.new(pix, mask)

label = Gtk::Label.new('pixmap button')

vbox = Gtk::VBox.new(false, 0)
vbox.pack_start pm
vbox.pack_start label
pm.show
label.show
vbox.show

button.add vbox
window.add button
button.show
window.show

Gtk.main

(注: XPM ファイルは別途用意する必要があります。 ここでは ruby/gtk 付属の test.xpm というファイルを用いるものとします。)

実行結果

プログラムの説明

次へ
[TOP] [ML topics] [GTK] [Today's goo analyzer]
Written by akaishi@ruby.freak.ne.jp