我的代码由几个类组成 - 有些是 UI 小部件,有些是纯功能性的,一个是存储一些全局设置(我从其他小部件访问的 MainWindow 中的设置)。
我与主窗口一起创建了“全局设置类”,其他一切都是由主窗口或其子窗口创建的。- 只要整个代码在同一个文件中,它就可以工作。
为了避免愚蠢的滚动,我将代码分成每个类一个文件。“全局设置类”的创建保留在带有 MainWindow 的文件中。
但是现在 MainWindow 的孩子们不能再访问/看到“全局设置类”了......
这些文件都在同一个文件夹中,我试过了import xxx
,from xxx import *
和import xxx as x
。
通过注释掉所有与“选项”相关的代码(并失去此功能),它似乎可以工作。
我只是不明白为什么在拆分整个事情后它不应该工作。
编辑 - 详细信息:
文件 1:
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
... # A MenuBar with checkable Items, QAction calls a function which sets the option in o_option instance
def startWidgetXYZ(self):
self.setWindowTitle(...)
self.initAllChecks()
xyz = XYZ(file, topic, self)
self.setCentralWidget(xyz)
o_options = MenuBarOptions() # this is the global
app = QApplication(sys.argv)
m_window = MainWindow()
m_window.show()
sys.exit(app.exec_())
文件2:
class XYZ(QWidget):
def __init__(self, file, topic, parent=None):
QWidget.__init__(self, parent)
self.k_korpus = Korpus(file, topic) # the class Korpus will load/save data from/to XML-files
文件3:
class Korpus(object):
def __init__(self, file, topic):
self.file = file
self.level = level
self.patienceChecked = o_options.isOption123Checked() # NameError: global name 'o_options' is not defined - (but no error if code is in one file)