【问题标题】:Qt not loading on Remote Desktop (failed to initialize XRandr)Qt 未在远程桌面上加载(无法初始化 XRandr)
【发布时间】:2020-12-01 04:11:45
【问题描述】:

我正在使用 Python 3.8 linux 安装在远程桌面 (VNC) 上运行基于 PySide2 的 Python GUI,但遇到了一些问题。

GUI确实确实弹出并且出现可操作,但是,命令提示符显示以下错误:

qt.qpa.xcb: failed to initialize XRandr
qt.qpa.xcb: X server does not support XInput 2
qt.qpa.xcb: QXcbConnection: XCB error: 1 (BadRequest), sequence: 168, resource id: 53,
major code: 131 (Unknown), minor code: 47

我没有管理员/root 访问权限,并且 DISPLAY 环境变量似乎设置为 :3.0 (DISPLAY=:3.0) (DISPLAYNUM=3)。

这似乎不是一个限制,因为我可以在远程查看器中运行其他软件界面。

我不知道这是否是预期的用例,但是,我尝试在命令行调用 Python GUI 之后附加一个平台 VNC 标志:

/usr/python/linux/bin/python /usr/python/linux/scripts/GUI.py -platform vnc

从这里,错误消息消失了,我得到:

QVncServer created on port 5900

但是,这次没有显示任何 GUI 或窗口。使用屏幕外或最小选项也是如此。

【问题讨论】:

  • 我认为 VNC 平台是用于直接连接(使用 VNC 客户端)到远程服务器上的 Qt 应用程序(在指定端口上作为 VNC 主机运行)。
  • 如果一切正常,我会忽略警告消息。
  • 如果有请分享一下,你得到答案了吗?

标签: python python-3.x qt pyqt vnc


【解决方案1】:
  1. 默认情况下,您的 Qt 应用程序作为您配置为 VNC 服务器的 X 服务器的客户端运行。 Qt 应用程序不关心也不知道任何 VNC。它与 X 服务器交互,然后服务器如何将屏幕暴露给世界是无关紧要的事情。您看到的错误可能无关紧要。

  2. 当您使用 VNC 平台插件时,您的 Qt 应用程序本身就变成了 VNC 服务器 - 它不再使用 X 服务器。屏幕上不会“出现”任何内容,因为没有屏幕。提供屏幕由您决定:使用 VNC 客户端连接到它 :)

【讨论】:

  • 感谢您的信息,但我也面临问题
猜你喜欢
  • 1970-01-01
  • 2010-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
  • 2019-06-07
相关资源
最近更新 更多