Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的图像不能用python tkinter显示?_Python_Python 3.x_Tkinter - Fatal编程技术网

为什么我的图像不能用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()”或“忘记包装()”,我做的是“忘记包装()”和“包装()”,在其中不会保存位置。