【发布时间】:2025-12-31 12:00:12
【问题描述】:
显示主窗口图像,但按下 P 按钮时打开的新窗口不显示图像。
不知道为什么新窗口没有添加图片,因为我遵循了与主窗口相同的过程。
注意:两个图像都在同一个目录中。感谢您的帮助!
from tkinter import *
def openWindow():
newWindow = Toplevel(root)
newWindow.geometry("1050x580")
newWindow.title("P&ID")
#newWindow.configure(background= 'grey')
bg1 = PhotoImage(file = "p.png")
my_canvas2 = Canvas(root, width=1050, height=580, border= 0, highlightthickness=0)
my_canvas2.pack(fill = "both", expand=True)
#Set image in Cnavas
my_canvas2.create_image(0,0, image = bg1, anchor = "nw")
Label(root, text = "P")
root = Tk()
root.geometry("1050x580")
root.title(" Hellow ")
bg = PhotoImage(file = "pht.png")
my_canvas = Canvas(root, width=1050, height=580, border= 0, highlightthickness=0)
my_canvas.pack(fill = "both", expand=True)
#Set image in Cnavas
my_canvas.create_image(0,0, image = bg, anchor = "nw")
#Add label
my_canvas.create_text(100,50, text= "T", font = ("Helvetica", 25), fill ="white")
#Add button
button1 = Button(root, text="Saved values")
button1_window = my_canvas.create_window(780,100, anchor="sw", window = button1)
button2 = Button(root, text="Help")
button2_window = my_canvas.create_window(925, 100, anchor = "sw", window = button2)
button3 = Button(root, text="P", command= openWindow)
button3_window = my_canvas.create_window(710, 100, anchor = "sw", window = button3)
#define entry box
entry = Entry(root, font=("Helvetica", 16), width=14,fg ="dark blue", border=0)
#define the output
output = Text(root, font=("Helvetica", 16), width=50, height= 10, fg ="dark blue", border=0)
sensor_values = Text(root, font=("Helvetica", 18), width=75, height= 1, fg ="dark blue", border=0)
#Add label for cmd box
my_canvas.create_text(150,100, text= "Enter a command:", font = ("Helvetica", 15), fill ="white")
#Add entry boxes to the canvas
cmd_window = my_canvas.create_window(70,130, anchor= "nw", window= entry)
#Add label for the output window
my_canvas.create_text(400,100, text= "Output:", font = ("Helvetica", 15), fill ="white")
out_window = my_canvas.create_window(660, 250,window = output )
mainloop()
【问题讨论】:
-
尝试使用
my_canvas2.tk_img = bg1。它应该可以解决您的问题(假设它类似于this)。
标签: python-3.x tkinter