如何使用 PyQt 在 Python 中构建良好的应用程序架构?
How could I make a good application architecture in Python with PyQt?
我认为我的应用程序架构不佳。我不知道如何正确地在文件之间导航。
这是我的应用程序的非标准化架构。
每个文件包含一个class。
主要问题是由于代码的体系结构,我无法从任何 class 获取一些变量到另一个。
如果我将所有 classes 放在一个文件中,它肯定会运行,但我想将所有 classes(即 QWindow
和 QWidget
)分开在几个文件中.
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.
希望对您有所帮助
我认为我的应用程序架构不佳。我不知道如何正确地在文件之间导航。
这是我的应用程序的非标准化架构。
每个文件包含一个class。
主要问题是由于代码的体系结构,我无法从任何 class 获取一些变量到另一个。
如果我将所有 classes 放在一个文件中,它肯定会运行,但我想将所有 classes(即 QWindow
和 QWidget
)分开在几个文件中.
1. 在每个 parent class 中,用 :
导入每个 childfrom 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.
希望对您有所帮助