这可能是一个愚蠢的问题,但我自己也无法解决这个问题,我也没有找到解决方案。我有一个使用GLUT创建窗口的PyOpenGl应用程序。该程序应该继续运行,而 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)
但在raw_input()
处于活动状态时不会调用它。那么这个有什么好的解决方案呢?如何从终端读取用户输入,并且仍然可以通过单击" x"来关闭我的应用程序。按钮?
REQUIRED:
OPTIONAL:
谢谢!
答案 0 :(得分:0)
我认为最简单的方法就是使用线程。所以你会有一个线程来监听raw_inputs()和另一个线程来监听窗口关闭事件。