我试图在不使用PIL
的情况下将图像添加到应用程序中,因为我无法在学校电脑上访问它。因此,我尝试使用PhotoImage
,但是当我运行该程序时,它只是给我一个白屏,上面没有任何内容。在过去的4个小时中,我一直在尝试这样做,建议会很有帮助。
from tkinter import *
from tkinter import PhotoImage
master = Tk()
var1 = IntVar()
var2 = IntVar()
var3 = IntVar()
var3 = IntVar()
var4 = IntVar()
var5 = IntVar()
var6 = IntVar()
var7 = IntVar()
var8 = IntVar()
var9 = IntVar()
var10 = IntVar()
var11 = IntVar()
var12 = IntVar()
var13 = IntVar()
var14 = IntVar()
var15 = IntVar()
var16 = IntVar()
var17 = IntVar()
var18 = IntVar()
def var_state1():
if var1.get() == TRUE and var2.get() == TRUE and var3.get() == TRUE:
print("it workd1")
def Before_Day():
# this is the image
image = PhotoImage(file='C:/Users/plarkin2020334/Pictures/DQ_Logo.png')
Label(master, image=image).grid(row=0, sticky=W)
Label(master, text="Check When Complete:").grid(row=1, sticky=W)
Checkbutton(master, text="Turn On Icecream Mashine", variable=var1).grid(row=2, sticky=W)
Checkbutton(master, text="Turn On Radio", variable=var2).grid(row=3, sticky=W)
Checkbutton(master, text="Turn On Oven", variable=var3).grid(row=4, sticky=W)
crl1 = Button(master, text="Done", command=var_state1).grid(row=5, sticky=W, pady=4)
Before_Day()
mainloop()
答案 0 :(得分:0)
您的代码还可以,除了几件事。程序到达mainloop()时,正在创建的“图像”会丢失,这是因为您是在Before_Day()函数内部创建的。
您可以做的一个简单更改就是将这行移到顶部(即Before_Day()函数之外),然后将其直接用作全局变量。
image = PhotoImage(file='C:/Users/plarkin2020334/Pictures/DQ_Logo.png')
只需在“ var18 = IntVar()”行之后编写此代码。并且还请记住,在使用grid()时不要将带有标签的pack()一起使用。
更准确地说,您可以在下面看到确切的代码:
from tkinter import *
from tkinter import PhotoImage
master = Tk()
var1 = IntVar()
var2 = IntVar()
var3 = IntVar()
var3 = IntVar()
var4 = IntVar()
var5 = IntVar()
var6 = IntVar()
var7 = IntVar()
var8 = IntVar()
var9 = IntVar()
var10 = IntVar()
var11 = IntVar()
var12 = IntVar()
var13 = IntVar()
var14 = IntVar()
var15 = IntVar()
var16 = IntVar()
var17 = IntVar()
var18 = IntVar()
image = PhotoImage(file='C:/Users/plarkin2020334/Pictures/DQ_Logo.png')
def var_state1():
if var1.get() == TRUE and var2.get() == TRUE and var3.get() == TRUE:
print("it workd1")
def Before_Day():
# this is the image
Label(master, image=image).grid(row=0, sticky=W)
Label(master, text="Check When Complete:").grid(row=1, sticky=W)
Checkbutton(master, text="Turn On Icecream Mashine", variable=var1).grid(row=2, sticky=W)
Checkbutton(master, text="Turn On Radio", variable=var2).grid(row=3, sticky=W)
Checkbutton(master, text="Turn On Oven", variable=var3).grid(row=4, sticky=W)
crl1 = Button(master, text="Done", command=var_state1).grid(row=5, sticky=W, pady=4)
Before_Day()
mainloop()
这应该很好!希望对您有所帮助。 祝你好运! :-)