1

一度に多くの tkinter PhotoImages を表示するプログラムがあります (関連: PIL を使用していません)。現在、いくつかの画面があり、プレイが端に達すると、新しいタイルマップをロードし、古いコンテンツをクリアした後、currentTiles 配列にさらに多くの写真画像を作成します。プログラムの残りの部分で、これらの写真画像への参照が他にないことはほぼ確実です。

奇妙なことに、loadLevel 関数が呼び出された後に配列の最後の項目の内容を出力すると、「pyimage3761」などのように表示され、新しい画面を読み込むたびに値が増加します。これは、これまでに作成されたタイルの数を tkinter が追跡しているためですか、それとも古いタイルがまだメモリ内にあるためですか? 私は一生、別の参照がどこにあるのかを理解できないので、エラーを探すのに何時間も費やす前に、他に可能性があるかどうか疑問に思っています.

ありがとう!!

4

1 に答える 1

2

作成されたすべてのイメージには、一意の名前が割り当てられます (作成時にイメージの名前を指定しない限り)。この一意の名前は、単調に増加するカウンターを使用して生成されます。

于 2013-04-26T17:14:16.027 に答える