0

シンプルな GUI でいくつかのカードを表示しようとしていますが、表示されません。

アップロードしたい .gif を含む作業ファイルをアップロードしました。コードは近いですが正しくありません。 http://www.filedropper.com/cardgameproblemサイズ: 0Kb、タイプ: .zip

  • 1 つの .py と 1 つの .gif を含む

注目すべき行は 257 ~ 266 から始まります。些細なミスなのはわかっているのですが、見当たりません。

助けてください

4

1 に答える 1

1

いくつかいじくり回した後、GUI の変数に保存すると、画像が適切に表示されることがわかりました。self

self.gif1 = PhotoImage(file='1.gif')
self.canvas.create_image(0, 0, image=self.gif1, anchor=NW)

理由はわかりませんが、これは機能しますが、変数に名前を付けるだけでgif1(または他の名前)、なしselfでは機能しません。コードと最小限の例の両方でテストされています。

更新: @Bryan が指摘したように、ガベージ コレクターは終了PhotoImage時にインスタンスを破棄します。、または など__init__を使用して、コンストラクターのスコープを超えてインスタンスへの参照を保持する必要があります。目の前の問題を考えると、カードの名前をキーとして使用して画像を保存するを作成するのが最善かもしれません。selfglobaldict

于 2012-10-25T12:00:00.313 に答える