所以我想制作一个gui并让图像出现在gui上,但是当我将图像放到gui上时它会开始闪烁,这取决于我在计算机上拖动gui的位置......
导致此效果的代码:
from tkinter import *
from threading import *
root = Tk()
root.resizable(False, False)
image1 = PhotoImage(file="GUI.png")
w = image1.width()
h = image1.height()
root.geometry("%dx%d+0+0" % (w, h))
panel1 = Label(root, image=image1)
panel1.pack(side='top', fill='both', expand='yes')
def PlaceImage():
global panel1
test = PhotoImage(file="test.png")
label = Label(panel1, image=test)
label.image = test
label.place(x=0, y=0)
def thethread():
PlaceImage()
thread = Thread(target=thethread)
thread.start()
root.mainloop()
gui出来很好,但我放置的图像是毛病。如果有人知道为什么会这样,以及如何解决它会非常有帮助!
答案 0 :(得分:0)
执行此操作以查看是否可以消除此问题或是否在其他位置.i.e。在解决问题之前,我们必须知道问题所在。如果这确实解决了问题,那么接下来尝试PIL而不是PhotoImage。 我在Linux上运行时没有问题这也可能是因为你运行的新版本的Tkinter比OP正在运行它并且它将PIL合并到Tktinter中,而OP则没有。
from tkinter import *
from threading import *
root = Tk()
root.resizable(False, False)
image1 = PhotoImage(file="GUI.png")
w = image1.width()
h = image1.height()
root.geometry("%dx%d+0+0" % (w, h))
panel1 = Label(root, image=image1)
panel1.pack(side='top', fill='both', expand='yes')
def PlaceImage():
global panel1
##test = PhotoImage(file="test.png")
##label = Label(panel1, image=test)
##abel.image = test
##label.place(x=0, y=0)
def thethread():
PlaceImage()
thread = Thread(target=thethread)
thread.start()
root.mainloop()