【发布时间】:2017-03-14 11:02:33
【问题描述】:
这可能是一个愚蠢的问题,但我自己无法解决这个问题,也没有在线找到解决方案。我有一个 PyOpenGl 应用程序,它使用 GLUT 创建它的窗口。当用户在 TERMINAL 中的输入不是“退出”时,程序应该继续运行。像这样的:
command = raw_input()
while command != "quit":
if command == "add_shape":
draw_cube()
elif command == "remove_shape":
clear_window()
elif command == "add_light":
add_light()
command = raw_input()
sys.exit("Application closed by the user")
问题是,当我可以raw_input() 使用“x”按钮关闭窗口不起作用时,只有键入 quit 会终止任务。起初我以为 GLUT 会有一个用于关闭窗口的回调函数,我可以用它来检测“x”按钮单击并强制终止应用程序,结果它确实有这样一个函数 void glutCloseFunc(void(*)(void)callback) 但它没有被调用 while @ 987654324@ 处于活动状态。那么有什么好的解决方案呢?如何从终端读取用户输入并仍然能够通过单击“x”按钮关闭我的应用程序?
必填:
- 从终端读取用户输入。
可选:
- 使用 GLUT 是可选的。我尝试过使用 PyGame,但找不到从终端读取的解决方案,因为它只处理与窗口的交互。
谢谢!
【问题讨论】: