如何在input_raw()处于活动状态时关闭GLUT窗口?蟒蛇

时间:2017-03-11 23:34:08

标签: python glut

这可能是一个愚蠢的问题,但我自己也无法解决这个问题,我也没有找到解决方案。我有一个使用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:

  • 使用GLUT是可选的。我曾尝试使用PyGame,但无法找到从终端读取的解决方案,因为它只处理与窗口的交互。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为最简单的方法就是使用线程。所以你会有一个线程来监听raw_inputs()和另一个线程来监听窗口关闭事件。