gpt4 book ai didi

python - Python 程序在 PyCharm 中运行后,Tkinter 窗口自动关闭

转载 作者:行者123 更新时间:2023-11-28 22:46:19 24 4
gpt4 key购买 nike

我正在 PyCharm 中编写一个小型 Python 游戏。我正在使用 Python 3.4 版的 Macbook 上执行此操作。游戏会打开一个 Tkinter 窗口并向其中添加一些内容。但是,运行游戏时,它出现的时间很短,然后立即关闭。

我在 Stackoverflow 上找到了一些技巧,可以在游戏结束时添加输入(“按下以关闭窗口”)。确实,这可以确保窗口不会立即关闭,但对于游戏来说并不实用。在游戏中,用户需要使用他的方向键来玩。所以在这种情况下添加 input(...) 没有用。如何防止窗口自动关闭?谢谢!

代码下方:

from tkinter import *

# Scherm maken
HEIGHT = 500
WIDTH = 800
window = Tk()
window.title('Bellenschieter')
c = Canvas(window,width=WIDTH, height=HEIGHT, bg='darkblue')
c.pack()



# Duikboot maken
ship_id = c.create_polygon(5,5,5,25,30,15,fill='red')
ship_id2 = c.create_oval(0,0,30,30,outline='red')
SHIP_R = 15
MID_X = WIDTH/2
MID_Y = HEIGHT/2
c.move(ship_id, MID_X, MID_Y)
c.move(ship_id2, MID_X, MID_Y)

# Duikboot besturen
SHIP_SPD = 10
def move_ship(event):
if event.keysym == 'Up':
c.move(ship_id, 0, -SHIP_SPD)
c.move(ship_id2, 0, -SHIP_SPD)
elif event.keysym == 'Down':
c.move(ship_id, 0, SHIP_SPD)
c.move(ship_id2, 0, SHIP_SPD)
elif event.keysym == 'Left':
c.move(ship_id, -SHIP_SPD, 0)
c.move(ship_id2, -SHIP_SPD, 0)
elif event.keysym == 'Right':
c.move(ship_id, SHIP_SPD, 0)
c.move(ship_id2, SHIP_SPD, 0)
c.bind_all('<Key>', move_ship)

window.update()

input('Press <Enter> to end the program')

最佳答案

设置小部件、事件处理程序后启动事件循环。

# input('Press <Enter> to end the program')  # (X)
window.mainloop() # OR mainloop()

删除对输入的调用。

关于python - Python 程序在 PyCharm 中运行后,Tkinter 窗口自动关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27637197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com