6

まず第一に、私はPythonGtk + 3を学んでいるので、これらの言語の上級プログラマーではないことを言及することが重要です。

png画像を作成するPythonスクリプト用のグラフィカルインターフェイスをGtk3で作成しようとしていますが、それを表示したいのですが、PyGobjectのドキュメントが非常に少ないため、その方法が見つかりませんでした。これまでのところ、私のインターフェースは次のようになっています。

ここに画像の説明を入力してください

ボタンとテキストエントリはグリッドに配置されています。スクリプトが画像の作成を完了するまで、右側の大きなスペース(大きなボタンで表されます)を空のままにして、その領域に表示したいと思います。コードはここにあります。

Gtk3でPythonを使用してそれを行う方法はありますか?

前もって感謝します、

ドイツ人。

編集

@gpooが指摘したデモを見て、Frameウィジェットを見つけ、GUIに実装しました。これはどのように見えるかです:

ここに画像の説明を入力してください

ウィンドウクラス内で、フレームをグリッドに追加します。

self.frame_rgb = Gtk.Frame(label='RGB image')
self.frame_rgb.set_label_align(0.5, 0.5)
self.frame_rgb.set_shadow_type(Gtk.ShadowType.IN)
self.grid.attach_next_to(self.frame_rgb, self.label_img_name,
                         Gtk.PositionType.RIGHT, 3, 8)

また、[実行]ボタンをコールバック関数に接続して、クリックすると、スクリプトがpng画像を作成して表示するようにします。

self.button_run = Gtk.Button(stock=Gtk.STOCK_EXECUTE)
self.button_run.connect('clicked', self.on_button_run_clicked)
self.grid.attach_next_to(self.button_run, self.entry_b_img,
                         Gtk.PositionType.BOTTOM, 1, 1)

最後に、私のコールバック関数は次のとおりです(まだ計算は行われていません。テスト目的で画像をフレームにレンダリングするだけです)。

def on_button_run_clicked(self, widget):
    self.img = Gtk.Image.new_from_file('astro-tux.png')
    self.frame_rgb.add(self.img)

しかし、[実行]ボタンをクリックすると、次のエラーが発生しました。

(makeRGB.py:2613):Gtk-警告**:タイプGtkImageのウィジェットをGtkFrameに追加しようとしていますが、GtkBinサブクラスとしてGtkFrameには一度に1つのウィジェットしか含めることができません。すでにGtkImageタイプのウィジェットが含まれています

どんな助けでも大歓迎です!

4

1 に答える 1

11

Gtk.Imageを使用できます。ファイルを生成する場合は、次を使用できます。

img = Gtk.Image.new_from_file('/path/to/my_file.png')

imgコンテナに追加します(GtkGridあなたの場合)。または、すでにGtk.Imageそこにある場合は、次を使用できます。

img.set_from_file('/path/to/my_file.png')

代わりに...from_fileを使用でき、ストリームからfrom_pixbufを作成できます。Gdk.Pixbuf

一般に、Cのドキュメントを使用して、イディオムをPythonに変更できます。また、PyGObjectで利用可能なデモ、特に画像を処理するためのデモを確認できます。

于 2013-03-15T22:17:35.030 に答える