5

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

来自 Qt 的 QHostInfo 文档:

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

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


PySide 的文档QHostInfo详细说明了用法,lookupHost但我认为它可能是从 Qt 文档中自动生成的,因为默认情况下,该方法在QtNetwork 的类型系统定义中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 回答