Python Tkinter window 当我 运行 它时打不开
Python Tkinter window does not open when I run it
我正在尝试创建一个 4 图片 1 字的副本。当我 运行 我的代码没有 window 打开时,即使我在代码末尾包含了 .mainloop() 。我试图为字母创建按钮,输入框获取并显示输入,然后输入按钮检查输入是否正确。在包含图像部分之前,我的代码运行良好。我在网上查看过帮助,图像的代码似乎没问题。所以,我不知道错误在哪里。如果你能帮助我就太好了out.Thanks!! <3
import tkinter
from PIL import ImageTk, Image
window = tkinter.Tk()
window.title("4 Pics 1 Word")
window.geometry("546x600")
botFrame = tkinter.Frame(window)
botFrame.pack(side=tkinter.BOTTOM)
word = "APPLE"
wordLength = 5
Letters = [
'A','I','H','O','P','U',
'P','R','E','Z','L','Q']
row = 5
col = 0
for i in Letters:
button_style = 'raised'
action = lambda x = i: click_event(x)
tkinter.Button(window, text = i, width = 7, height = 3, relief = button_style, command = action) \
.grid(row = row, column = col, sticky = 'nesw', )
col += 1
if col > 5:
col = 0
row += 1
tkinter.Button(window, text= "CLEAR", width = 7, height = 3, relief = button_style, command = lambda x = "CLEAR": clear_event(x))\
.grid(row = 7, column = 0)
tkinter.Button(window, text= "ENTER", width = 7, height = 3, relief = button_style, command = lambda x = "ENTER": enter_event(x))\
.grid(row = 7, column = 2)
display = tkinter.Entry(window, width = 40, bg = "white")
display.grid(row = 0, column = 0, columnspan = 8)
img = ImageTk.PhotoImage(Image.open("Level1.gif"))
panel = tkinter.Label(botFrame, image = img)
panel.image = img
panel.pack(side = "bottom", fill = "both", expand = "yes")
def clear_event(key):
if key == "CLEAR":
display.delete(0,tkinter.END)
def enter_event(key):
if key == "ENTER":
final = display.get()
if final == word:
display.delete(0,tkinter.END)
tkinter.messagebox.showinfo( "Congrats!!", "YOU WIN!!")
def click_event(key):
display.insert(tkinter.END, key)
window.mainloop()
删除此代码并尝试:botFrame.pack(side=tkinter.BOTTOM)
因为看起来您不能同时使用几何图形和打包,所以您必须保留几何图形或打包
我希望这对你有用。
我正在尝试创建一个 4 图片 1 字的副本。当我 运行 我的代码没有 window 打开时,即使我在代码末尾包含了 .mainloop() 。我试图为字母创建按钮,输入框获取并显示输入,然后输入按钮检查输入是否正确。在包含图像部分之前,我的代码运行良好。我在网上查看过帮助,图像的代码似乎没问题。所以,我不知道错误在哪里。如果你能帮助我就太好了out.Thanks!! <3
import tkinter
from PIL import ImageTk, Image
window = tkinter.Tk()
window.title("4 Pics 1 Word")
window.geometry("546x600")
botFrame = tkinter.Frame(window)
botFrame.pack(side=tkinter.BOTTOM)
word = "APPLE"
wordLength = 5
Letters = [
'A','I','H','O','P','U',
'P','R','E','Z','L','Q']
row = 5
col = 0
for i in Letters:
button_style = 'raised'
action = lambda x = i: click_event(x)
tkinter.Button(window, text = i, width = 7, height = 3, relief = button_style, command = action) \
.grid(row = row, column = col, sticky = 'nesw', )
col += 1
if col > 5:
col = 0
row += 1
tkinter.Button(window, text= "CLEAR", width = 7, height = 3, relief = button_style, command = lambda x = "CLEAR": clear_event(x))\
.grid(row = 7, column = 0)
tkinter.Button(window, text= "ENTER", width = 7, height = 3, relief = button_style, command = lambda x = "ENTER": enter_event(x))\
.grid(row = 7, column = 2)
display = tkinter.Entry(window, width = 40, bg = "white")
display.grid(row = 0, column = 0, columnspan = 8)
img = ImageTk.PhotoImage(Image.open("Level1.gif"))
panel = tkinter.Label(botFrame, image = img)
panel.image = img
panel.pack(side = "bottom", fill = "both", expand = "yes")
def clear_event(key):
if key == "CLEAR":
display.delete(0,tkinter.END)
def enter_event(key):
if key == "ENTER":
final = display.get()
if final == word:
display.delete(0,tkinter.END)
tkinter.messagebox.showinfo( "Congrats!!", "YOU WIN!!")
def click_event(key):
display.insert(tkinter.END, key)
window.mainloop()
删除此代码并尝试:botFrame.pack(side=tkinter.BOTTOM)
因为看起来您不能同时使用几何图形和打包,所以您必须保留几何图形或打包
我希望这对你有用。