gpt4 book ai didi

linux - 如何获取VNC连接状态?

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:52 25 4
gpt4 key购买 nike

我一直在寻找一种方法让我的 Qt 应用程序知道 VNC 连接是否处于事件状态。

我如何/可以获取 VNC 连接状态?

这是一个嵌入式 Linux 应用程序。

最佳答案

起点是查看 src/plugins/gfxdrivers/vnc/qscreenvnc_p.h 中的 Qt 源代码;声明了一个 QVNCServer 类,它还定义了一个 isConnected() 方法,该方法似乎完全符合您的需要。

然而,关键点是从您的应用程序代码访问该方法;正如可以从文件名后缀 _p 中推断出的那样,该 header 中的类对于 Qt 库是私有(private)的(读取:内部),而不是公共(public)接口(interface)的一部分。因此,它们没有记录在引用中,我还没有找到一个公共(public)方法来获取当前的 QVNCServer 对象,也没有找到任何其他可以提供指向该对象的指针的 VNC 相关实例。

我的建议是您从 src/plugins/gfxdrivers/vnc/qscreenvnc_qws.h 中的相关公共(public)接口(interface)开始,它将服务器类作为 QProxyScreen 的一部分> 子类化,并从那里继续工作以了解如何创建 VNC 服务器实例,以及处理指向它的指针的位置。您可以向 QVNCScreen 接口(interface)添加一个方法,该方法允许您从应用程序获取连接状态。但是,您必须修补 Qt 源代码并重建库。

在应用程序代码中获取 QScreen 对象很容易:

foreach(const QScreen* s, QScreen::instance()->subScreens())
{
if(s->classId() == QScreen::VNCClass)
//Here you can cast the screen instance and call a method on it
}

关于linux - 如何获取VNC连接状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47450977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com