首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无端循环的pySDL2显示

无端循环的pySDL2显示
EN

Stack Overflow用户
提问于 2014-05-14 03:11:19
回答 1查看 337关注 0票数 0

在我发现的每个pySLD2示例中,我都在代码的末尾看到了一个循环,以使窗口一直打开直到关闭。例如:

代码语言:javascript
运行
复制
#!/usr/bin/env python
"""
The code is placed into public domain
by anatoly techtonik <techtonik@gmail.com>
"""
import sdl2
import sdl2.ext as lib

lib.init()

window = lib.Window('', size=(300, 100))
window.show()

renderer = lib.Renderer(window)
renderer.draw_point([10,10], lib.Color(255,255,255))
renderer.present()

####Specifically this loop####
running = True
while running:
  for e in lib.get_events():
    if e.type == sdl2.SDL_QUIT:
      running = False
      break
    if e.type == sdl2.SDL_KEYDOWN:
      if e.key.keysym.sym == sdl2.SDLK_ESCAPE:
        running = False
        break

我见过的所有事件处理程序都被阻塞了。是否有一种方法,就像我在标准SDL中看到的那样,简单地调用初始化和在一个保持打开的窗口上更新函数。我写这篇文章是为了把它写成一个外部库,我可以从任何项目中独立调用它。

有什么想法吗?谢谢!

编辑:按照在标准SDL中这样做的方法的请求,可以工作。只需调用init函数来设置屏幕,它就会一直保持到您关闭它为止。

EN

回答 1

Stack Overflow用户

发布于 2014-06-18 07:48:39

您误解了这个示例--这是要在主循环中设置的附加钩子(屏幕.c)。

SDL使用主循环方法来处理事件,更新窗口显示等。是的,有一种方法可以解决这个问题。创建您自己的窗口,并使用任何方法使其保持打开状态,通过SDL_SysWM*函数获取窗口句柄,并更新窗口的显示缓冲区。

但是,这涉及到一些胶水代码,并且还要求您自己处理窗口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23645010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档