gpt4 book ai didi

pyqt - QGIS PyQt4 缺少 QString 类

转载 作者:行者123 更新时间:2023-12-04 12:41:11 27 4
gpt4 key购买 nike

我试图在 QGIS Python 控制台中使用 QString。

from PyQt4.QtCore import QString

但它说:
ImportError: cannot import name QString

在我的 Python IDLE 中它工作正常,但我知道 QGIS 带来了自己的 PyQt4。这里可能有什么问题?我能解决吗?
import PyQt4.QtCore
PyQt4.QtCore.QString()


from PyQt4 import QtCore
QtCore.QString()

无论如何都行不通。

我正在考虑将 QtCore4.dll 从我自己的 PyQt4 安装复制到 QGIS,但 QGIS 使用 QtCore.prl 和 QtCore4.lib 而不是 QtCore.pyd 和 QtCore4.dll,就像我的 PyQt4 安装使用的一样

当我在 QGIS 控制台中调用 help(PyQt4.QtCore) 时,它对 QString 类一无所知,而 Python IDLE 中的操作也是如此......这真的很令人沮丧..

如果有人知道该怎么做,那就太好了:)

最佳答案

如果 Python2 与 PyQt4 一起使用,则类如 QStringQVariant将默认可用。但是,Python3 的默认设置是消除这些类并改用等效的 Python 类型。

可以使用 sip module 覆盖这些默认值。 , 像这样:

import sip
# switch on QString in Python3
sip.setapi('QString', 1)

# switch off QString in Python2
sip.setapi('QString', 2)

from PyQt4 import QtCore

QString在 QGIS 中不可用,这要么是因为它使用的是 Python3,要么是因为它使用的是 Python2 并按照上面的建议切换 API。

无论哪种方式,解决您的问题最简单的方法可能是运行 Python3 版本的 IDLE,这样您就不必再为 QString 烦恼了。和 QVariant .

请注意,在 PyQt5 中,没有切换 API 的选项,因此 QString永远不会在那里可用。

还要注意 Qt4 的官方支持将于今年结束。因此,如果您希望新的 PyQt 应用程序面向 future ,您的首选应该是 PyQt5 + Python3,除非您有充分的理由不这样做(例如不可避免的依赖项)。

关于pyqt - QGIS PyQt4 缺少 QString 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28632169/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com