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

2023-12-29

我正在 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()

删除对input.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 程序在 PyCharm 中运行后,Tkinter 窗口自动关闭 的相关文章

  • 如何从 python 获取 BQL (bLOOMBERG) 查询

    我在 Excel 中使用 BQL 有以下查询 BQL MEMBERS INEMCBI LX Equity type holdings 名称 列 2 行 223 这显示了特定共同基金的证券表 像这样 在此输入图像描述 https i stac
  • 替换字符串列表中的 \x00 的最佳方法?

    我有一个来自已解析 PE 文件的值列表 其中包括 x00每个部分末尾的空字节 我希望能够删除 x00字符串中的字节而不删除所有字节 x 文件中的 s 我试过做 replace and re sub 但并没有取得太大成功 使用Python 2
  • 如何使用pycaffe重构caffe网络

    我想要的是 加载网络后 我将分解一些特定的图层并保存新的网络 例如 原网 数据 gt conv1 gt conv2 gt fc1 gt fc2 gt softmax New net 数据 gt conv1 1 gt conv1 2 gt c
  • 如何更改充当按钮的范围的文本

    我正在为自定义 Web 应用程序编写自动化测试 我遇到了无法更改跨度文本的问题 我尝试过使用 driver execute script 但没有运气 如果我更好地了解 javascript 这确实会有帮助 据我所知 您无法单击跨度 并且列表
  • 如何用 python 和 sympy 解决多元不等式?

    我对使用 python 和 Sympy 还很陌生 并且遇到了使用 sympy 解决多元不等式的问题 假设我的文件中有很多函数 如下所示 cst sqrt x 2 cst exp sqrt cst x 1 4 log log sqrt cst
  • 获取单个方程的脚本

    在文本文件中输入 a 2 8 b 3 9 c 4 8 d 5 9 e a b f c d g 0 6 h 1 7 i e g j f h output i j 期望的输出 输出 2 8 3 9 0 6 4 8 5 9 1 7 如果输入文件名
  • 如何将条目中的部分文本加粗并更改其背景颜色?

    我正在创建一个基于 Tkinter 的 GUI 它有一个 Entry 小部件 我想将其文本的一部分加粗并更改其背景颜色 但我不知道我该怎么做 如果我使用文本小部件 我可以只使用标签 但看起来它们不能与条目小部件一起使用 此代码使用文本小部件
  • NLTK、搭配问题:需要解包的值太多(预期为 2)

    我尝试使用 NLTK 检索搭配 但出现错误 我使用内置的古腾堡语料库 I wrote alice nltk corpus gutenberg fileids 7 al nltk corpus gutenberg words alice al
  • 在 python-docx 中搜索和替换

    我有一个包含以下字符串的文档 模板 你好 我的名字是鲍勃 鲍勃是一个很好的名字 我想使用 python docx 打开此文档并使用 查找和替换 方法 如果存在 来更改每个字符串 Bob gt Mark 最后 我想生成一个新文档 其中包含字符
  • Python3 查找 2 个列表中有多少个差异才能相等

    假设我们有 2 个列表 always具有相同的长度和always包含字符串 list1 sot sot ts gg gg gg list2 gg gg gg gg gg sot 我们需要找到 其中有多少项list2应该改变 以便它等于lis
  • python中函数变量的作用域

    假设我们有两个函数 def ftpConnect ftp FTP server ftp login ftp cwd path def getFileList ftpConnect files ftp nlst print files 如果我
  • 如何使用 openpyxl 对工作簿中的 Excel 工作表/选项卡进行排序

    我需要按字母数字对工作簿中的选项卡 工作表进行排序 我在用openpyxl https openpyxl readthedocs io en default 操作工作表 您可以尝试排序workbook sheets list workboo
  • VSCode pytest 测试发现失败

    Pytest 测试发现失败 用户界面指出 Test discovery error please check the configuration settings for the tests 输出窗口显示 Test Discovery fa
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • FastText - 由于 C++ 扩展未能分配内存,无法加载 model.bin

    我正在尝试使用 FastText Python APIhttps pypi python org pypi fasttext https pypi python org pypi fasttext虽然 据我所知 此 API 无法加载较新的
  • 在pycharm中调试python代码

    这个问题类似于this https stackoverflow com questions 10240018 how to use pycharm to debug python script一 我正在尝试调试pyethapp https
  • Python 矩阵每一行的总和

    lista 1 2 3 4 5 6 7 8 9 print lista def filas lista res for elemento in lista x sum lista elemento res append x print re
  • 从 dask 数据框中的日期时间序列获取年份和星期?

    如果我有一个 Pandas 数据框和一个日期时间类型的列 我可以按如下方式获取年份 df year df date dt year 对于 dask 数据框 这是行不通的 如果我先计算 像这样 df year df date compute
  • 如何对字符串列表进行排序?

    在 Python 中创建按字母顺序排序的列表的最佳方法是什么 基本回答 mylist b C A mylist sort 这会修改您的原始列表 即就地排序 要获取列表的排序副本而不更改原始列表 请使用sorted http docs pyt
  • 如何使用 Django (Python) 登录表单?

    我在 Django 中构建了一个登录表单 现在我遇到了路由问题 当我选择登录按钮时 表单不会发送正确的遮阳篷 我认为前端的表单无法从 查看 py 文件 所以它不会发送任何 awnser 并且登录过程无法工作 该表单是一个简单的静态 html

随机推荐

  • SQL选择连接帮助

    我在找出针对此场景的查询时遇到问题 我想在这个查询中使用两个表 它们是这样的 Units ID Other Data People ID UnitID lt fk to Units Other Data 这就是我想做的 我想选择人员表中没有
  • 构建 Qt 应用程序时出现“/usr/bin/ld: 找不到 -lGL”

    我昨天安装了 Linux Debian 然后安装了最新的 Qt 版本 今天我安装了gcc和g 但问题是 当我创建 GUI 应用程序时它不会构建和运行 每当我创建一个新项目时 选择 gui 甚至不更改任何未编译的内容 我会收到以下消息 usr
  • 将静态库链接到共享对象时,__attribute__((used)) 无效(android gcc 4.8)

    我正在将一些东西移植到 Android 并且我有几个应该链接到 so 文件中的静态库 使用 Android NDK 我尝试使用 Wl whole archive到链接器 并由适当的终止 Wl no whole archive 但出现错误 例
  • 如何通过维护其他配置在现有 Eclipse 中设置 Struts 2?

    我是一个新手程序员 正在使用阿帕奇Struts 2 http struts apache org MVC 框架 我想在现有的 Eclipse IDE 中设置 Struts 2 并且不想损害我在 Eclipse 中所做的其他不同工作 以下是我
  • java中连续重复字符的替换

    我正在研究 Twitter 数据标准化 Twitter 用户经常使用 ts I looooooove it 之类的术语来强调 爱 这个词 我想通过替换重复字符来将这些重复的字符转换为正确的英语单词 直到我得到一个正确的有意义的单词 我知道我
  • Python脚本判断一个目录是否是git仓库

    我刚刚开始使用 Python 我的第一个任务是编写一个脚本来确定它运行的目录是否是 git 存储库 一位同学建议了这段代码 usr bin env python from subprocess import Popen PIPE STDOU
  • 多处理 vs 线程 Python [重复]

    这个问题在这里已经有答案了 我正在尝试了解的优点多重处理 http docs python org library multiprocessing over 线程 http docs python org library threading
  • ARM 与 x86 的主要区别是什么?

    我不太有兴趣了解在每个平台上开发代码时在程序员习惯做什么或他发现更容易做什么等方面的 小字 差异 我也对详细的物理差异不感兴趣核心 如果适合你的叙述 我不介意提及它们 我只是不想关注上面的内容 我只是想知道为什么x86等CISC架构优于RI
  • 有选择地替换字符串内的子字符串

    我有一个像这样的字符串 a java jobs in delhi delhi 我想用 代替德里 但只有位于双引号之外的 delhi 因此 输出应该如下所示 java jobs in delhi 该字符串是示例字符串 子字符串不一定是 del
  • LWJGL 光线拾取 (gluUnProject)

    因此 我一直在浏览教程 以及本网站上的问题 但没有找到任何可以解决我的问题的方法 这是我正在尝试实现的当前代码 private void pick float matModelView new float 16 matProjView ne
  • C 函数的返回值到 ASM

    我正在尝试从 ASM 中调用一个函数 我知道如何调用它 但我无法找到如何获取该函数的返回值 示例如下 C code int dummy return 5 N ASM代码 dummyFunction call dummy grab retur
  • 如何使我的应用程序链接库与其位置无关?

    我建立了一个共享库 即libabc so 和一个可执行文件 即myapp 它使用我的共享库 我已将共享库和可执行文件都放置在文件系统中 但是当我运行可执行文件时 出现以下错误 error while loading shared libra
  • 为什么

    我希望以下代码将我的跨度放置到按钮的左上角 但事实并非如此 这是为什么
  • 在 iOS 中模拟系统范围的触摸事件,无需越狱设备

    我想在ios非越狱设备中模拟系统范围内的触摸事件 当然 这个应用程序不适用于应用程序商店 经过长时间的凝视后 我做了这样的事情 void SimulateTouchEvent float x arc4random RAND MAX RAND
  • 如何启动通过点击推送通知打开的 PWA(渐进式 Web 应用程序)?

    按照这个例子 https developers google com web fundamentals getting started push notifications step 10 hl en 我看到 PWA 如何打开网址 但如何使
  • Android:onUpgrade 在数据库升级时不调用

    我正在开发我的应用程序的第二个版本 我面临着一个问题 在我的应用程序中 数据库位于资产文件夹中 现在我想从第二个版本的资产文件夹中更新我的数据库 我尝试将代码升级为 Data Base Version private static fina
  • Android 下可以使用多个蓝牙适配器吗?

    Android 下是否可以使用多个蓝牙适配器 例如 为了能够通过这些适配器连接到 7 个以上的设备 Android API 甚至没有提到访问多个适配器的可能性 https developer android com reference an
  • 使 svg 缩放至全屏尺寸

    我正在尝试将 svg 缩放到浏览器窗口的完整大小 svg 对象位于 div 内 高度和宽度均设置为 100 我尝试使用 svg 内的 viewBox 但无济于事 我使用的屏幕分辨率为 1080p div style width 100 he
  • C++ 定义、声明和赋值到底是什么?

    我倾向于交替使用 定义 声明 和 分配 这三个词 但这似乎会冒犯某些人 这合理吗 我应该只在第一次分配给变量时使用 声明 一词吗 或者还有比这更多的事情吗 定义是描述值或函数的地方 即编译器或程序员被准确地告知它是什么 例如 int foo
  • Python 程序在 PyCharm 中运行后,Tkinter 窗口自动关闭

    我正在 PyCharm 中编写一个小型 Python 游戏 我正在使用 Python 3 4 版本的 Macbook 上执行此操作 游戏会打开一个 Tkinter 窗口并向其中添加一些内容 但是 运行游戏时 它会显示非常短暂并立即关闭 我在