You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt4报错NameError: 'QtGui'未定义,已用指定导入仍有问题求排查

解决PyQt4中NameError: name 'QtGui' is not defined的问题

嘿,这个问题我太熟啦!你踩的是个很典型的命名空间小坑~

错误原因

你虽然通过from PyQt4.QtGui import QMainWindow, ...这种方式导入了具体的类,但你的代码里却在试图用QtGui.QMainWindow来引用类——可你根本没导入QtGui这个模块本身啊!当前命名空间里只有你明确导入的那些类(比如QMainWindow),没有QtGui这个模块对象,自然会报找不到名字的错误。

看你代码里的这行:

class Window(QtGui.QMainWindow):

这就是问题核心,你已经把QMainWindow直接导入到当前环境了,却还在加QtGui.前缀。

两种解决办法

办法一:直接使用导入的类名(推荐,贴合你当前的导入习惯)

既然已经导入了QMainWindow,直接用类名就行,把类定义改成:

class Window(QMainWindow):

同理,如果你后面代码里还有QtGui.XXX的调用,只要你已经通过from PyQt4.QtGui import XXX导入了对应的类,都可以直接去掉QtGui.前缀,用XXX就行。

办法二:导入QtGui模块本身

如果你的代码里需要频繁使用QtGui模块下的各种内容,也可以改成导入整个模块:

import sys
from PyQt4 import QtGui
from PyQt4.QtCore import SIGNAL, QSettings, QSize, QPoint, QVariant, QFileInfo, QTimer, pyqtSignal, QObject

这样后面再写QtGui.QMainWindow就不会报错了,当然这种情况下你之前导入的那些具体类也可以保留,不会冲突。

内容的提问来源于stack exchange,提问作者Aquarius_Girl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:31:08