5

ローカルネットワーク上のホストの存在を確認したいプロジェクトに取り組んでいます。Qt の QtNetwork パッケージでは、このQHostInfo::lookupHostメソッドは、あらゆる種類の ping を実装したり、ping システム コールに依存したりする必要なく、ホストを検索する便利な方法です。その非同期呼び出しにより、呼び出しが戻るのを待つダイアログを作成するのに便利で、ダイアログまたはメイン プログラムにスロットがあり、戻りを処理します。

QHostInfo に関する Qt のドキュメントから:

ホストの IP アドレスを非同期的に検索するには、lookupHost() を呼び出します。これは、ホスト名または IP アドレス、受信側オブジェクト、およびスロット署名を引数として取り、ID を返します。ルックアップ ID を指定して abortHostLookup() を呼び出すことで、ルックアップを中止できます...

結果の準備が整うと、スロットが呼び出されます。結果は QHostInfo オブジェクトに格納されます。addresses() を呼び出してホストの IP アドレスのリストを取得し、hostName() を呼び出して検索されたホスト名を取得します。


QHostInfo詳細な使用方法についてはPySide のドキュメントを参照してください。ただし、デフォルトでは、メソッドはQtNetwork の型システム定義でプライベート メソッドとして宣言されているlookupHostため、Qt ドキュメントから自動的に生成される可能性があると思います。lookupHost

このメソッドが PySide 実装でプライベートと宣言されている特定の理由はありますか? 呼び出しの非同期性と Python の GIL と関係がありますか?

4

1 に答える 1

1

PySide ボードから回答が得られなかったので、QtNetwork の PySide 型システム定義ファイルの行を次のように変更しました。

<modify-function signature="lookupHost(QString,QObject*,const char*)" access="public"/>

PySideを再コンパイルし、問題はありません

于 2012-10-17T18:44:57.873 に答える