-1

我的代码由几个类组成 - 有些是 UI 小部件,有些是纯功能性的,一个是存储一些全局设置(我从其他小部件访问的 MainWindow 中的设置)。

我与主窗口一起创建了“全局设置类”,其他一切都是由主窗口或其子窗口创建的。- 只要整个代码在同一个文件中,它就可以工作。

为了避免愚蠢的滚动,我将代码分成每个类一个文件。“全局设置类”的创建保留在带有 MainWindow 的文件中。

但是现在 MainWindow 的孩子们不能再访问/看到“全局设置类”了......

这些文件都在同一个文件夹中,我试过了import xxxfrom 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)
4

1 回答 1

0

将“全局设置类”放在与MainWindow. 然后在每个文件(主文件、文件 1 和文件 2)中,添加类似

from global_settings_file import GlobalSettingsClass
于 2013-05-01T10:53:27.010 回答