[英]How to get the VNC connection status?
我一直在尋找一種方法讓Qt應用程序知道VNC連接是否處於活動狀態。
如何/如何獲得VNC連接狀態?
這是一個嵌入式Linux應用程序。
起點是在src/plugins/gfxdrivers/vnc/qscreenvnc_p.h
上查看Qt源; 在那里聲明了一個類QVNCServer
,該類還定義了一個isConnected()
方法,該方法似乎完全QVNCServer
您的需求。
但是,關鍵點是從您的應用程序代碼訪問該方法。 從文件名后綴_p
可以_p
出,該標頭中的類是Qt庫的私有(讀取:內部)類,而不是公共接口的一部分。 因此,它們沒有在參考文獻中進行記錄,並且我還沒有找到獲取當前QVNCServer
對象的公共方法,也沒有找到可以提供指向該對象的指針的任何其他VNC相關實例。
我的建議是,您從src/plugins/gfxdrivers/vnc/qscreenvnc_qws.h
的相關公共接口開始,該服務器接口將服務器類作為QProxyScreen
子類的一部分QProxyScreen
,然后從那里開始了解VNC服務器實例的方式。創建,並在其中處理指向它的指針。 您可能可以向QVNCScreen
接口添加方法,該方法允許您從應用程序獲取連接狀態。 但是,您將必須修補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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.