在 PySide 中使用 QtHostinfo.lookupHost
Posted
技术标签:
【中文标题】在 PySide 中使用 QtHostinfo.lookupHost【英文标题】:Using QtHostinfo.lookupHost in PySide 【发布时间】: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 那是我的下一步,但我想我会先在这里问一下,以防有人对此有一些经验。
【参考方案1】:
在没有收到 PySide 板的答复后,我更改了 QtNetwork 的 PySide 类型系统定义文件中的行,使其显示为:
<modify-function signature="lookupHost(QString,QObject*,const char*)" access="public"/>
重新编译 PySide 并没有问题
【讨论】:
以上是关于在 PySide 中使用 QtHostinfo.lookupHost的主要内容,如果未能解决你的问题,请参考以下文章
使用 PySide2 在 Qt-Designer 中嵌入 PyQtGraph
为啥在 pyside2 中,不能使用 QTranform mul QPointF?
如何使用 pyside2 在 Qtableview 中显示(和格式化)日期时间数据