Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PyQt在Python中创建一个好的应用程序体系结构?_Python_Python 3.x_Pyqt_Pyqt5 - Fatal编程技术网

如何使用PyQt在Python中创建一个好的应用程序体系结构?

如何使用PyQt在Python中创建一个好的应用程序体系结构?,python,python-3.x,pyqt,pyqt5,Python,Python 3.x,Pyqt,Pyqt5,我认为我的应用程序没有一个好的架构。我不知道如何在文件之间正确导航 这是我的应用程序的非标准化模式 每个文件包含一个类 主要的问题是,由于代码的体系结构,我无法从任何类到另一个类获取一些变量。 如果我将所有类放在一个文件中,它肯定会运行,但我想将我的所有类(即QWindow和QWidget)分离到多个文件中。1。在每个父类中,导入每个子类时使用: from childfilename import childclassname 例如,在optionwindow类中,您将有: from mai

我认为我的应用程序没有一个好的架构。我不知道如何在文件之间正确导航

这是我的应用程序的非标准化模式

每个文件包含一个类

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

1。在每个父类中,导入每个子类时使用:

from childfilename import childclassname
例如,在optionwindow类中,您将有:

from mainwindowfilename import mainwindowclassname
from toolbarfilename import toolbarsclassname
from menubarfilename import menubarclassname
注1:为了更好地说明问题,请使用与类相同的名称命名文件。 *例如:mytoolbar.py包含
类mytoolbar(QtGui.QToolBar)*

注2:您需要在包含类的每个文件夹中放置一个空的\uuuuu init\uuuu.py

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

2.要实例化和调用子函数或获取子变量:

在父类中:

self.child1=childclassname()
self.child1.childfunction1()
a1 = self.child1.childvariable1
...
self.parentvariable1 = 2
def parentfunction1(self):
    ...
在儿童班:

...
self.childvariable1 = 2
def childfunction1(self):
    ...
self.parent().parentfunction1()`
a1 = self.parent().parentvariable1`
3.要获取子对象中的父对象或父对象变量或函数,请执行以下操作: 在父类中:

self.child1=childclassname()
self.child1.childfunction1()
a1 = self.child1.childvariable1
...
self.parentvariable1 = 2
def parentfunction1(self):
    ...
在儿童班:

...
self.childvariable1 = 2
def childfunction1(self):
    ...
self.parent().parentfunction1()`
a1 = self.parent().parentvariable1`
注意:self.parent().parent()。。。会把你带到祖父母那里


我希望它能有所帮助

该图实际上没有深入了解应用程序的实际工作方式。一定有成千上万种不同的方式可以在代码中实现。谢谢!这对我帮助很大!