以下のコード(セクションごとに異なる変数名を使用)を使用して、各tkinterウィンドウの背景画像を作成しました。これらはそれぞれ関数で開始され、どちらも独立して正常に機能します。
ただし、ある関数を別の関数からロードすると、2番目の関数は画像の表示に失敗します。(各関数に関連するすべてのものもインポートしてみました)。tk.destruct()を使用する場合は機能しますが、開いたままにする場合、またはで非表示にする場合。withdraw()を使用すると、画像の表示に失敗し、2番目のウィンドウが使用できなくなります。
background_image=tk.PhotoImage(...)
background_label = tk.Label(parent, image=background_image)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
わかりました、私はあなたのための解決策を作りました。基本的に必要なのはtk.Toplevel()
、2番目のtkinterウィンドウに使用し、「親」がroot2
2番目のウィンドウに画像が表示されるようになっていることを確認することだけです。
私は画像にボタンを使用しました。ラベルが付いているので、これを変更することもできますが、ボタンを使用すると.pack()
、新しいtkウィンドウを簡単に開く.place()
ことができます。あなたが資本を必要とするかもしれないので、私は窓のpython 3.3を使用したことを知っておくためにも役立つかもしれないT
ためtkinter
。
import tkinter as tk
root1 = tk.Tk()
def new_window():
root2 = tk.Toplevel()
# click the last button and all tk windows close
def shutdown():
root1.destroy()
root2.destroy()
background_image2 = tk.PhotoImage(file = '...')
background_button2 = tk.Button(root2, image = background_image2, command = shutdown)
background_button2.pack()
root2.mainloop()
background_image1 = tk.PhotoImage(file = '...')
# have used a button not a label for me to make another tk window
background_button1 = tk.Button(root1, image = background_image1, command = new_window)
background_button1.pack()
root1.mainloop()
@ user2589273次回はコードを追加して、答えを簡単に与えたり、自分に合わせて調整したりできるようにする必要があります。これは単なる提案です。お役に立てれば。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加