6

これはかなり単純なはずだと思いますが、何かが足りないと思います。

そこで、ストック画像の1つでウィンドウのアイコンを設定したいと思います。私が試してみました:

windowIcon = gtk.image_new_form_stock(gtk.STOCK_DIALOG_AUTHENTICATION, gtk.ICON_SIZE_MENU)
window.set_icon(windowIcon.get_pixbuf())

次に、Pythonは次のように文句を言います。

ファイル"./sample.py"、44行目、init
window.set_icon(windowIcon.get_pixbuf())
ValueError:画像はGdkPixbufまたは空である必要があります

私はgtkImageをGdkPixbufに変換しようとします。なぜなら、Pythonが文句を言わなかったとき、

TypeError:アイコンはGdkPixbufまたはNoneである必要があります

pygtkのドキュメントには次のように書かれています。

画像のストレージタイプがgtk.IMAGE_EMPTYでもgtk.IMAGE_PIXBUFでもない場合、ValueError例外が発生します。

ですから、ストック画像の保存形態が間違っていると思います。問題は、これをどのように回避するかです。

4

2 に答える 2

4

任意のGtkWidgetで.render_icon()メソッドを使用して、ストックアイテムをアイコンとして提供できます。

windowicon = window.render_icon(gtk.STOCK_DIALOG_AUTHENTICATION, gtk.ICON_SIZE_MENU)
window.set_icon(windowicon)
于 2011-04-22T08:03:09.293 に答える
2

このrender_icon()方法は上記のように機能します。get_pixbuf()メソッドがを返していたため、コードに問題がありましたNone。これは、画像がから作成されたものではなくpixbuf、何らかの理由で変換されないためです。画像からを取得する別の方法は、関数pixbufを使用するgtk.gdk.pixbuf_new_from_image()ことです。

于 2016-01-19T12:47:21.670 に答える