为什么我的图像不能用python tkinter显示?
所以当我试着做一个游戏的时候,头版很好 但是当我尝试这个游戏时,没有显示任何图像。为什么?它如何在不改变系统顺序的情况下修复它? 它总是显示没有图像或只是在我的其他项目什么都不知道为什么 此处代码:为什么我的图像不能用python tkinter显示?,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,所以当我试着做一个游戏的时候,头版很好 但是当我尝试这个游戏时,没有显示任何图像。为什么?它如何在不改变系统顺序的情况下修复它? 它总是显示没有图像或只是在我的其他项目什么都不知道为什么 此处代码: from Tkinter import * from PIL import Image,ImageTk from Winsound import * win = Tk() win.config(bg="#e300ff") win.geometry("950x600
from Tkinter import *
from PIL import Image,ImageTk
from Winsound import *
win = Tk()
win.config(bg="#e300ff")
win.geometry("950x600+160+60")
win.resizable(width = False, height = False)
def play_sound_play():
global playgame
PlaySound("SoundEffects\Coins.wav", SND_FILENAME)
playbtn.destroy()
win.config(bg="white")
playgame = True
game()
def printpos(event):
print(f"{plr_posx}")
def MoveLeft(event):
global plr_posx
if plr_posx == 311:
print("cant go into grass")
else:
plr_posx -= 150
plr.place(x=plr_posx,y=plr_posy)
def MoveRight(event):
global plr_posx
if plr_posx >= 610:
print("cant go into grass")
else:
plr_posx += 150
plr.place(x=plr_posx,y=plr_posy)
def game():
global plr
global plr_posx
global plr_posy
#road
road_img = ImageTk.PhotoImage(Image.open("texture\ymd.png"))
road = Label(win, image=road_img)
road.pack()
road.place(x=321,y=0)
#grass
grass_img = ImageTk.PhotoImage(Image.open("texture\grass.png"))
grass1 = Label(win, image=grass_img)
grass1.pack()
grass1.place(x=-2,y=0)
grass2 = Label(win, image=grass_img)
grass2.pack()
grass2.place(x=646,y=0)
#Plr pos
plr_posx=311
plr_posy=450
#Plr
plr_img = ImageTk.PhotoImage(Image.open("texture\Player.png"))
plr = Label(win, image=plr_img)
plr.pack()
plr.place(x=plr_posx,y=plr_posy)
if playgame == False:
print("2")
else:
print("1")
#controls
win.bind("<Left>",MoveLeft)
win.bind("<Right>",MoveRight)
win.bind("<p>",printpos)
def main():
global playbtn
#PlayBtn
play_btn = ImageTk.PhotoImage(Image.open("texture\play_btn.png"))
playbtn = Button(win, image=play_btn,bd=0,bg="#e300ff",activebackground='#e300ff', command=play_sound_play)
playbtn.pack()
playbtn.place(x=150,y=250)
win.mainloop()
main()
从Tkinter导入*
从PIL导入图像,ImageTk
从Winsound导入*
win=Tk()
win.config(bg=“#e300ff”)
win.geometry(“950x600+160+60”)
win.可调整大小(宽度=假,高度=假)
def play_sound_play():
全球游戏
播放声音(“SoundEffects\Coins.wav”,SND_文件名)
playbtn.destroy()
win.config(bg=“白色”)
playgame=正确
游戏()
def printpos(事件):
打印(f“{plr_posx}”)
def MoveLeft(事件):
全局plr_posx
如果plr_posx==311:
打印(“不能进入草地”)
其他:
plr_posx-=150
位置(x=plr\u posx,y=plr\u posy)
def MoveRight(事件):
全局plr_posx
如果plr_posx>=610:
打印(“不能进入草地”)
其他:
plr_posx+=150
位置(x=plr\u posx,y=plr\u posy)
def game():
全球plr
全局plr_posx
全局plr_posy
#道路
road\u img=ImageTk.PhotoImage(Image.open(“texture\ymd.png”))
道路=标签(win,图像=道路\U img)
路,包()
道路位置(x=321,y=0)
#草
grass\u img=ImageTk.PhotoImage(Image.open(“texture\grass.png”))
grass1=标签(赢,图像=草\u img)
1.pack()
1.位置(x=-2,y=0)
格拉斯2=标签(赢,图像=格拉斯_img)
草2.pack()
2.地点(x=646,y=0)
#Plr位置
plr_posx=311
plr_posy=450
#Plr
plr\u img=ImageTk.PhotoImage(Image.open(“texture\Player.png”))
plr=标签(win,图像=plr\U img)
plr.pack()
位置(x=plr\u posx,y=plr\u posy)
如果playgame==False:
打印(“2”)
其他:
打印(“1”)
#控制
win.bind(“,MoveLeft)
win.bind(“,MoveRight)
win.bind(“”,printpos)
def main():
全球播放
#播放
play\u btn=ImageTk.PhotoImage(Image.open(“texture\play\u btn.png”))
playbtn=按钮(win,image=play_btn,bd=0,bg=“#e300ff”,activebackground='#e300ff',command=play#sound_play)
playbtn.pack()
播放位置(x=150,y=250)
win.mainloop()
main()
没有显示任何错误
即使在我关上它之后
将其设置为白色背景,然后。。。什么也不做:你调用
game()
,它什么都不做(除了声明这些变量为全局变量),或者你没有在问题中正确设置代码的格式。你看,如果我这样做了,它将不会在game()中显示草地、道路、pls,如果我使用bg颜色,它将显示唯一的颜色。好的,我会再次问你,看看你发布的代码,如果它的格式正确并且game()
的定义如文章所示,那么我可以告诉你它完全没有任何作用,好吧,如果你用正确的缩进正确地格式化代码那就太好了。为什么你要.pack()
缩进,然后立即.place()
ing小部件?没有必要只使用.place()
或只使用.pack()
来编辑代码。我使用“.place()”,因为在“play_sound_play()”中,我做或“.destroy()”或“忘记包装()”,我做的是“忘记包装()”和“包装()”,在其中不会保存位置。