【发布时间】:2017-07-01 16:49:59
【问题描述】:
我将把这个问题保持得相当笼统,因为我觉得很多人都在做同样的事情,而我找不到合适的答案。
使用 PyQt(4 或 5)制作每个人都需要的程序主要有以下几行:
from PyQt5 import QtCore, QtGui
from PyQt5.QtWidgets import QWidget
对于某人想要创建的每个小部件,他们或多或少都需要编写这两行。有没有办法(快速)导入所有这些行,而不必为每个子小部件导入它们?
为了进一步澄清,假设我有一个主类 MainWindow 调用它的子小部件 Child
from PyQt5 import QtCore, QtGui
from PyQt5.QtWidgets import QWidget
from ChildWidget import Child
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
widget1 = Child(self)
....
文件ChildWidget 的结构类似于
from PyQt5 import QtCore, QtGui
from PyQt5.QtWidgets import QWidget
class Child(QWidget):
def __init__(self, parent):
super(Child, self).__init__(parent)
....
(当然,每个小部件的导入会有所不同,但这两个将始终存在。)
我知道除了ChildWidget 中的常规两次导入,我可以使用from MainWindow import * 来导入MainWindow 中的所有内容,但我觉得这很慢,因为它是循环导入所有内容?
所以我的问题是,随着小部件数量的增加,如果速度是一个主要问题,那么在每个小部件中导入相同功能的最佳方式是什么?
【问题讨论】:
-
Python 导入每个程序只执行一次。任何重复的导入语句都只是查找缓存的版本,以您建议的方式使用时会产生很少的开销。没有必要在子模块中避免它们。
标签: python python-3.x import pyqt