如何使用 PyQt 在 Python 中构建良好的应用程序架构?

How could I make a good application architecture in Python with PyQt?

我认为我的应用程序架构不佳。我不知道如何正确地在文件之间导航。

这是我的应用程序的非标准化架构。

每个文件包含一个class。

主要问题是由于代码的体系结构,我无法从任何 class 获取一些变量到另一个。 如果我将所有 classes 放在一个文件中,它肯定会运行,但我想将所有 classes(即 QWindowQWidget)分开在几个文件中.

1. 在每个 parent class 中,用 :

导入每个 child
from childfilename import childclassname

例如,在选项窗口 class 中,您将有:

from mainwindowfilename import mainwindowclassname
from toolbarfilename import toolbarsclassname
from menubarfilename import menubarclassname

注意 1:为了更好的易读性,请使用与 classes 相同的名称命名文件。 *例如:mytoolbar.py 包含 class mytoolbar(QtGui.QToolBar)*

注意 2:您需要在每个包含 class)[=51= 的文件夹中放置一个空的 __init__.py ]

注意 3:您可以将 classes 放在不同的文件夹中。如果这样做,请使用:

from folder.childfilename import childclassname

2.实例化调用child函数或获取child变量:

中 parent class :

self.child1=childclassname()
self.child1.childfunction1()
a1 = self.child1.childvariable1

在childclass中:

...
self.childvariable1 = 2
def childfunction1(self):
    ...

3. 要在 child 中获取 parent 或 grand-parents 变量或函数: 在 parent class :

...
self.parentvariable1 = 2
def parentfunction1(self):
    ...

在childclass中:

self.parent().parentfunction1()`
a1 = self.parent().parentvariable1`

注:self.parent().parent()。 ... 将带您前往盛大 parent.

希望对您有所帮助