私はすばやく使用してデフォルトのubuntuアプリケーションテンプレートを作成しました。表示されている画像をコードで変更する方法を考えています。
デフォルトの画像では、glade内のパスが ".../media/background.png"のubuntuロゴが表示されています。
プロジェクトウィンドウを開く場合pythonファイル(プロジェクト名はtestWindowであるのでtestWindow.py)で、finish_initializing関数のベースに次の行を追加します(作成されたデフォルトファイル内の他の部分は何も変更しません)。 、
self.PNG = self.builder.get_object("image1")
self.PNG.set_from_file("../media/background.png")
プログラムは実行されますが、ubuntuロゴの代わりに、不足している小さなファイルアイコンが表示されます。ただし、ターミナルにエラーメッセージが表示されず、pngファイルを別のpngに変更するか、pythonファイルと同じディレクトリに移動します(2行目のファイルを "background.png"に変更))同じ問題が発生します。clear()関数を使用して画像を正常に削除できますが、明らかに問題があり、画像ウィジェットのドキュメントに進むことができません。
私が何をしようとしているのかを知るのに役立つ場合は、簡単なフラッシュカードプログラムを作成して、日本語の文字を表示し、ユーザーに正しい発音を入力するように要求し、ユーザーが新しい文字の別の画像を表示するようにします成功した。
あなたが与えることができるあらゆる助けをありがとう!
指定するパスset_from_file
はGladeファイルからの相対パスですが、pythonファイルからの相対パスではありません。相対パスを使用すると問題が発生することが多いため、とにかく絶対パスを使用することをお勧めします。インストールされたアプリケーションを実行します。data/
フォルダにあるファイルの完全パスを取得するためのNiceヘルパー関数をすばやく提供します。次のことを試してください:
from test_lib.testconfig import get_data_file
[....]
self.image = self.builder.get_object("image1")
self.background = get_data_file("media/background.png")
self.image.set_from_file(self.background)