11

QtGui与PyQt5打包有什么原因吗???

我正在使用 Mark Summerfield 的 Rapid GUI 编程书。显然这本书是用 Qt4 编写的,但我被推荐使用 Qt5 和 PyQt5。我想运行第 4 章中的第一个示例代码。代码以以下 import 语句开头:

import sys
import time
from PyQt5.QtCore import *
from PyQt5.QtGui import *

编译器响应:

Traceback (most recent call last):
  File "wakeUp.py", line 4, in <module>
    from PyQt5.QtGui import *
ImportError: No module named 'PyQt5.QtGui'

请注意,PyQt5.QtCore 导入语句不会产生错误。

从终端,

$ echo $PYTHONPATH
:/usr/lib/python3.3/site-packages

有没有其他人遇到过这个 QtGui 的导入错误?

从交互式会话中,我可以

>>> import PyQt5.Qt
>>> import PyQt5.QtDBus
>>> import PyQt5.QtNetwork
>>> import PyQt5.QtXmlPatterns

但我没有 QtWidgets、QtGui、QtWebkit、QtDesigner 和其他几个。

另外,如果有帮助,/usr/lib/python3.3/site-packages/PyQt5 的内容是:

__init__.py  QtCore.so  QtDBus.so  QtNetwork.so  Qt.so  QtXmlPatterns.so  uic

这是我能够导入的相同模块。其他模块(QtWidgets、QtGui 等)也应该在这里吗?

我正在使用 Ubuntu 13.04 和 Python 3.3。

4

6 回答 6

7

在第一次尝试 pyqt4 和 pyqt5 以及 pycharm IDE 时,我遇到了很多导入问题。(尽管导入没有从 IDLE 运行的问题)最终经过大量的填充、卸载和重新安装(包括依赖项),导入自行解决了。

您是否使用 pyqt 网站上的安装程序安装了 pyqt5?你必须。Qt 设计器位于 Windows 的开始菜单下。在学习 PyQt4 教程时,我很幸运地使用了 PyQt5 的以下导入语句......

from PyQt4 import QtCore, QtGui #in the pyqt4 tutorials
from PyQt5 import QtCore, QtGui, QtWidgets #works for pyqt5

我自己是新手,但在 pyqt4 中,QtWidget 是 QtGui (QtGui.QtWidget) 的一部分,在 pyqt5 中它作为 QtWidgets 自行导入。让 pyqt4 教程在 pyqt5 中运行,只需对代码进行很小的更改。

我个人回到 pYqt4 以利用 pyqtgraph。

看看我的 pyqt4 帖子它会引导您使用 Qt Designer。

于 2014-01-03T13:35:43.520 回答
4

问题出在我运行 PyQt5 配置脚本时。通过的正确选项是这样的:

> python3 configure.py --qmake [path to Qt5.x]/bin/qmake

我提供了到 bin 的路径,但没有具体指向 qmake。去搞清楚!

像这样运行配置脚本后,我能够导入所有 PyQt5 模块。

于 2013-07-06T16:37:31.083 回答
4

使用以下命令配置 pyqt:

python[3] configure.py --qmake=[path to Qt5.x]/bin/qmake --verbose

qt 模块是否构建取决于 configure.py 的检查。看看终端输出,你会发现 QtGui..QtWidgets 没有正确安装的原因。

于 2015-06-07T15:43:18.297 回答
0

同样的问题,python 运行 py ok,但在所有 IDE 中:visual studio code/PyCharm。它将显示语法错误。

最后我通过将 env var PYTHONPATH 设置为 python 站点包路径来解决它,例如

PYTHONPATH=D:\Anaconda3\Lib\site-packages
于 2018-06-30T08:56:02.987 回答
0

我今天遇到了这个问题,我解决了如下:

而不是像这样导入:

from PyQt5.QtGui import QIcon

以这种方式导入,它会很好:

from PyQt5 import QtGui
from PyQt5.QtGui import QIcon
于 2019-09-15T19:43:43.603 回答
-4

PyQt5中,QtGuiQtCore位于QtWidgets

你应该像这样导入:

from PyQt5.QtWidgets import QtGui, QtCore

代替

from PyQt5.QtCore import *
from PyQt5.QtGui import *

希望这可以帮助。:)

于 2013-10-09T06:06:36.333 回答