导入PyQt4不包括PyQt4.QtCore或QtGui

时间:2014-01-24 03:31:26

标签: python pyqt4

为什么这些语句都不会导入QtCore,QtGui,QtNetwork或其他任何语句? 我搜索了这么久,找不到任何人回答这么简单的问题。或者至少就是我认为的那样。

import PyQt4
from PyQt4 import *

相反,我必须这样做:

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtNetwork import *

再加上一堆。任何快捷方式都可以抓住它们吗?

编辑:我的解决方案是浏览我正在使用的库(用于Py2exe)并只复制它们的导入。那很有效。不过,但并不乏味。

2 个答案:

答案 0 :(得分:3)

Don't use import *, namespaces exist for a good reason.

在您需要的模块中导入所需的模块。

此代码可能需要一些额外的字母,但您只知道QUrl按惯例是Qt模块,而不是保证。

 from PyQt import QtCore
 u = QtCore.QUrl

上面的代码意味着当您检查第二行时,您知道某些它是来自特定模块的Qt对象而没有别的。

答案 1 :(得分:3)

如果要将所有PyQt4类导入单个命名空间,可以执行以下操作:

from PyQt4 import Qt