在PySide中使用QtHostinfo.lookupHost

时间:2012-09-21 15:37:02

标签: python qt pyside

我正在开展一个项目,我想确认本地网络上是否存在主机。在Qt的QtNetwork包中,QHostInfo::lookupHost方法是一种搜索主机的便捷方式,无需实现任何类型的ping或依赖于ping系统调用。它的异步调用可以方便地创建一个对话框,等待调用返回,在对话框或主程序中有一个插槽来处理返回。

来自Qt的QHostInfo文档:

  

要异步查找主机的IP地址,请调用lookupHost(),它将主机名或IP地址,接收方对象和插槽签名作为参数并返回ID。您可以通过使用查找ID ...

调用abortHostLookup()来中止查找      

结果准备好后调用插槽。结果存储在QHostInfo对象中。调用addresses()获取主机的IP地址列表,使用hostName()获取查找的主机名。


来自PySide的QHostInfo文档详述了lookupHost的使用情况,但我认为它可能是从Qt文档自动生成的,因为默认情况下,方法lookupHost已声明作为typesystem definition for QtNetwork中的私有方法。

在PySide实现中是否有特殊原因将此方法声明为私有?它是否与调用的异步性质和Python的GIL有关?

1 个答案:

答案 0 :(得分:1)

在没有收到PySide板的答案后,我更改了QtNetwork的PySide类型系统定义文件中的行,使其显示为:

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

重新编译PySide并且没有问题