0

追加しようとしています。ユーザーが必要に応じて、Pythonのウィジェットから画像を変更します。

私はgtk2+、python 2.7.3でGladeを使用しています、そしてこれらは私がしていることです

image = gtk.Image()
image.set_from_file("MyImagePath.png")
image.show()

button = App.get_object('buttonExample')
button.add(image)

これは、画像を変更しようとしたときに得られるものです

GtkWarning:タイプGtkImageのウィジェットをGtkAspectFrameに追加しようとしていますが、GtkBinサブクラスとして、GtkAspectFrameには一度に1つのウィジェットしか含めることができません。すでにGtkImageタイプのウィジェットが含まれています

画像は期待どおりに正しく読み込まれますが、画像の入力パスを変更した場合、ボタンの画像を変更できればいいのですが、これは私が得ているものではありません。

gtk.Image.clear()を使おうとしましたが、ボタンでは使えないと書いてあります(たぶん、いじりまわしているだけです)

画像をボタンにロードおよびリロードする良い方法はありますか?

どうも

4

2 に答える 2

1

新しい画像を追加する前に、ボタンから古い画像を削除する必要があります(これについては、エラーメッセージは非常に簡単です)。または、現在の画像を変更してみてください。

button.get_child().set_from_file("MyImagePath.png")
于 2012-07-16T08:45:40.473 に答える
0

これはまさに私が必要としていたものでした。あなたが言ったように私は画像のクリアを使用し、次のようにボタンの画像もきれいにしました:

App.get_object('buttonExample').remove(image)
image.clear()

助けてくれてありがとう!

于 2012-07-17T16:49:03.453 に答える