【发布时间】:2012-09-21 15:37:01
【问题描述】:
我正在做一个项目,我想确认本地网络上是否存在主机。在 Qt 的 QtNetwork 包中,QHostInfo::lookupHost 方法是搜索主机的便捷方式,无需实现任何类型的 ping 或依赖于 ping 系统调用。它的异步调用可以方便地创建一个等待调用返回的对话框,并在对话框或主程序中使用一个槽来处理返回。
来自 Qt 的 QHostInfo 文档:
要异步查找主机的 IP 地址,请调用 lookupHost(),它将主机名或 IP 地址、接收器对象和插槽签名作为参数并返回一个 ID。您可以通过使用查找 ID 调用 abortHostLookup() 来中止查找...
当结果准备好时调用槽。结果存储在 QHostInfo 对象中。调用addresses() 获取主机的IP 地址列表,调用hostName() 获取查找的主机名。
PySide 的 QHostInfo 文档详细说明了 lookupHost 的用法,但我认为它可能会从 Qt 文档中自动生成,因为默认情况下,方法 lookupHost 在 @ 中声明为私有方法987654322@.
在 PySide 实现中将此方法声明为私有是否有特殊原因?它是否与调用的异步性质和 Python 的 GIL 有关?
【问题讨论】:
-
PySide 中缺少
QHostInfo.lookupHost的原因并不明显。函数 is 有 PyQt4。我建议在PySide mailing list 上询问。 -
@ekhumoro 那是我的下一步,但我想我会先在这里问一下,以防有人对此有一些经验。