python – 使用xvfb-run时出现奇怪的渲染问题

我有一个在beaglebone上远程运行的应用程序,用wxPython编写.我想使用Xvfb在虚拟帧缓冲区内运行应用程序,并使用VNC远程访问它.

您可能也应该知道我正在从应用程序内部启动VNC,如下所示:

    display = Display(":99")
    root = display.screen().root
    win_ids = [w.id for w in root.query_tree()._data['children'] if w.get_wm_name() and 'myappname' in w.get_wm_name().lower()]
    if (win_ids[0]):
       print("Found my win id. Starting x11vnc")
       system("x11vnc -quiet -sid %s -forever &" % win_ids[0])
    else:
        print("Can't find my Window ID!")

编辑:我使用Debian Jessie与内核版本3.8.13和xenomai.我找不到xvfb-run或Xvfb的版本号,但我可以告诉你我的xorg版本是1.16.4

当我启动应用程序时:

    sudo xvfb-run ./myApp -s :99 -screen 0 1920x1080x16 -ac

我看到以下内容:

但是,当我单独启动Xvfb时:

    Xvfb :99 -screen 0 800x600x16 -ac &

然后启动应用程序:

    DISPLAY=:99 ./myApp

我看到了(应该是什么):

任何见解?

解决方法:

我们显然没有相同版本的xvfb-run,但我的是shell
脚本和运行时

xvfb-run ./myApp -s :99 -screen 0 1920x1080x16 -ac

根本没有参数传递给Xvfb服务器,所有参数都传递给应用程序.该应用程序必须是最后一行的-s 1920x1080x16等选项才能传递给服务器.没有这个屏幕的默认深度为8位,这可能是导致外观问题的原因.

此外,传递给服务器的args(在-s之后)必须变成单个sting.
最后,运行:

xvfb-run -s '-screen 0 1920x1080x16' ./myApp
上一篇:linux – 从主机PC到运行Ubuntu的Android手机的VNC


下一篇:8.算法竞赛中的常用JAVA API :Calendar日期类