为什么这些语句都不会导入QtCore,QtGui,QtNetwork或其他任何语句? 我搜索了这么久,找不到任何人回答这么简单的问题。或者至少就是我认为的那样。
import PyQt4
from PyQt4 import *
相反,我必须这样做:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtNetwork import *
再加上一堆。任何快捷方式都可以抓住它们吗?
编辑:我的解决方案是浏览我正在使用的库(用于Py2exe)并只复制它们的导入。那很有效。不过,但并不乏味。
答案 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