python - pyglet 无法绘制到第二个显示器上的窗口

标签 python x11 pyglet

我正在使用 pyglet 编写心理物理学实验。我使用的电脑有两个显示器。它们被配置为两个独立的 Xscreens,0 和 1,分别对应于我的工作站监视器和实验屏幕。我想让 pyglet 绘制到实验屏幕 (Xscreen 1)。

为了测试设置,我编写了一个显示一些文本标签的简单程序。当我使用 pyglet.window.Window(screen=workstation_screen) 运行程序时,窗口出现在屏幕 0 上,文本按预期显示。

但是,当我使用 pyglet.window.Window(screen=experiment_screen) 运行程序时,窗口出现在屏幕 1 上,但没有文本出现。

我对这种行为很困惑,我做错了什么吗?这是 pyglet 中的已知错误吗?这是X的问题吗?任何建议将不胜感激。

详细信息:

Ubuntu 10.04.4 上的 Python 2.7.3 和 pyglet 1.1.4。

代码:

import pyglet

display = pyglet.window.get_platform().get_default_display()
screens = display.get_screens()

# When I replace 'screens[0]' with 'screens[1]' the aforementioned problem occurs.
window = pyglet.window.Window(screen=screens[0])

label = pyglet.text.Label('draw test',x=window.width/2.0,y=window.width/2.0)

@window.event
def on_draw():
    window.clear()
    label.draw()

pyglet.app.run()

最佳答案

我通过在 Xorg.conf 中启用 Xinerama 然后调用 window.set_fullscreen(fullscreen=True,screen=experiment_screen) 仅在第二个屏幕上移动和全屏窗口找到了解决方法。

但是,我仍然不确定为什么在没有启用 Xinerama 的情况下会出现窗口而不是文本。

关于python - pyglet 无法绘制到第二个显示器上的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14732935/

相关文章:

python - 启动 virtualenv 脚本 rc local

python - 为 xmlrpclib.ServerProxy 设置超时

坐标传递给 XDrawImageString()

c - "X11/Xlib.h": no such file or directory on mac os x mountain lion

media-player - pyglet WAVEFormatException : AVbin is required to decode compressed media

python - 您可以分配给父函数中定义的变量吗?

python - 获取由单独的类方法/函数中的事件触发的 QComboBox 项目文本

linux - 在 Linux 上捕获显示/监视器图像、发送键盘输入

python - Pyglet 着色器不工作,不断出错

python - 是否可以在浏览器中运行 pygame 或 pyglet ?