【问题标题】:How to close GLUT Window when input_raw() is active? Pythoninput_raw() 处于活动状态时如何关闭 GLUT 窗口? Python
【发布时间】: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,但找不到从终端读取的解决方案,因为它只处理与窗口的交互。

谢谢!

【问题讨论】:

    标签: python glut


    【解决方案1】:

    我相信最合乎逻辑和最简单的方法是使用线程。所以你会有一个线程来监听 raw_inputs() 和另一个线程来监听窗口关闭事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多