2017-11-23 17 views
0

QTアプリケーションがVNC接続がアクティブかどうかを知る方法を探しています。QT VNC接続ステータス

どうすればVNC接続ステータスを取得できますか?

これは組み込みLinuxアプリケーションです。

答えて

0

出発点はQtのソースをsrc/plugins/gfxdrivers/vnc/qscreenvnc_p.hで調べることです。クラスQVNCServerが宣言されており、これはあなたが必要とするものを正確に行うと思われるisConnected()メソッドを定義しています。

しかし、重要な点は、アプリケーションコードからそのメソッドにアクセスすることです。ファイル名接尾辞_pから差し引くことができるので、そのヘッダ内のクラスは、Qtライブラリに対してプライベート(読み取り:内部)であり、パブリックインタフェースの一部ではありません。したがって、それらはリファレンスには記載されておらず、現在のQVNCServerオブジェクトを取得するためのパブリックメソッドや、そのオブジェクトへのポインタを提供できるその他のVNC関連インスタンスは見つかりませんでした。

私は、サーバークラスをサブクラスの一部として組み込んだ、関連するパブリックインターフェイスであるsrc/plugins/gfxdrivers/vnc/qscreenvnc_qws.hから始め、そこから作業して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 
} 
関連する問題