使Qt VNC服务器正常工作

| 我为嵌入式Linux编译并安装了Qt,并确保在
./configure
行中使用
-qt-gfx-vnc
。 我使用以下代码启动我的应用程序。
int argc = 1;
char *argv[] = { \"appname\", \"-display\", \"VNC:0\" };
QApplication app(argc, argv, QApplication::GuiServer);
如果没有
\"-display\", \"VNC:0\"
选项,则应用程序将使用嵌入式设备的显示器工作,但有了这些选项,将在端口5900上创建
QVNCServer
,并且不再显示任何内容。尝试使用Ubuntu \的Remove Desktop Viewer进行连接无法正常工作。它只会显示黑屏,而不会显示错误消息。 对于我的应用程序,我需要一个VNC服务器,该服务器在GUI同时呈现到嵌入式显示器的同时处于活动状态。理想情况下,我还希望能够从我的应用程序中启用/禁用VNC服务器。我还需要能够进行一些用户身份验证。 是否可以使用Qt同时运行VNC服务器和标准
qws
设备,还是必须找到其他解决方案?     
已邀请:
ѭ6表示您的Qt库已编译为包括Qt VNC服务器。 QVNCServer并不是完整的VNC服务器,而是Qt显示驱动程序,其输出在网络接口上可用作VNC服务器。 \“ VNC服务器\”不是一个单独的过程,它比完整的VNC服务器更简单,因为它一次只能处理1个VNC客户端,并且仅支持深度为32bpp的VNC客户端。我正在使用的Qt版本(4.2.2)中有一个错误,如果VNC客户端尝试使用depth = 8(这是许多便携式设备VNC客户端的默认设置)进行连接,则会导致QVNCServer挂起。这可能是您连接到QVNC服务器的问题。确保您的VNC客户端配置为32位/ 24位/全色/高色。我修补了QtGui库源代码,因此,如果VNC客户端的depth = 32,它将立即断开连接。 以下是从命令行启动Qt应用程序的参数,但是在示例中所示的其他程序启动时,相同的字符串也起作用。 要仅在VNC显示屏上启动应用程序,请执行以下操作:
  appname -qws -display \"VNC::\"
  appname -qws -display \"VNC::size=640x480:depth=32:0\"
要启动应用程序以在本地Linux帧缓冲区(/ dev / fb0)(在我的情况下,本地显示驱动程序为\“ sm501 \”)和远程VNC客户端上同时显示相同的输出,请使用以下命令:
  appname -qws -display \"Multi: sm501: VNC::\"
(尽管从文档中看不到,但我必须对VNC使用2个冒号。) 在本地显示器和VNC客户端上显示不同内容的最简单方法是启动单独的Linux进程,每个进程指定一个不同的显示器。您可以通过启动具有不同VNC端口号的应用程序来支持多个VNC客户端:
  appname1 -qws                    --renders to the local display
  appname2 -qws -display VNC::0   --renders to VNC port 5900
  appname3 -qws -display VNC::1   --renders to VNC port 5901
  appname4 -qws -display VNC::2   --renders to VNC port 5902
    

要回复问题请先登录注册