Python:如何合并Python类?

Python:如何合并Python类?,python,Python,在多次尝试失败后,我找到了在github上构建python桌面应用程序的fbs模块教程。它提供了一个示例脚本以及如何将该脚本与fbs模块集成 如何将示例应用程序中的类合并到我的代码中 示例应用程序代码: from fbs_runtime.application_context import ApplicationContext, \ cached_property from PyQt5.QtWidgets import QApplication, QMainWindow class A

在多次尝试失败后,我找到了在github上构建python桌面应用程序的fbs模块教程。它提供了一个示例脚本以及如何将该脚本与fbs模块集成

如何将示例应用程序中的类合并到我的代码中

示例应用程序代码:

from fbs_runtime.application_context import ApplicationContext, \
    cached_property
from PyQt5.QtWidgets import QApplication, QMainWindow

class AppContext(ApplicationContext):
    def run(self):
        self.main_window.show()
        return self.app.exec_()
    @cached_property
    def main_window(self):
        result = QMainWindow()
        result.setWindowTitle('Hello World!')
        result.resize(250, 150)
        return result
我的代码:

    from PySide2 import QtCore, QtGui, QtWidgets
from PySide2.QtWidgets import QMessageBox, QAction, QPlainTextEdit, QPushButton

class Ui_Form(QtWidgets.QMainWindow):

        def setupUi(self, Form):
            Form.setObjectName("Form")
            Form.resize(846, 794)

            self.central_widget = QtWidgets.QWidget()
            Form.setCentralWidget(self.central_widget)

            self.gridLayout_2 = QtWidgets.QGridLayout(self.central_widget)
            self.gridLayout_2.setObjectName("gridLayout_2")
       ......


    if __name__ == '__main__':
        import sys

        # ~ app = QtWidgets.QApplication(sys.argv)
        # ~ Form = QtWidgets.QWidget()
        # ~ ui = Ui_Form()
        # ~ ui.setupUi(Form)
        # ~ Form.show()
        # ~ sys.exit(app.exec_())
        app = QtWidgets.QApplication(sys.argv)
        win = Ui_Form()
        app.exec_()

FBS回购:合并类?你能详细说明一下吗?

如果您想使用示例应用程序中的类,可以对其进行扩展

class AppContext(ApplicationContext):
    ...

class MyNewClass(AppContext):
    # All atributes from AppContext will be in your MyNewClass
*编辑** 在阅读了github关于这个项目的文档之后,您只需要实现类AppContext,因为在这个示例中,他已经从libApplicationContext继承了外部类

从fbs_runtime.application_上下文导入ApplicationContext\ 缓存的不动产 从PyQt5.QtWidgets导入QApplication,QMainWindow

class AppContext(ApplicationContext):
        ...

    def run(self):
        # Here you can change or add your own logic
        self.main_window.show()
        return self.app.exec_()

    @cached_property
    def main_window(self):
        # Here you can change or add your own logic
        result = QMainWindow() # Probabily you should manipulate this instance adding whatever you want following lib docs at github
        result.setWindowTitle('Hello World!')
        result.resize(250, 150)
        return result

您的意思是将类MyNewClass(AppContext):写入我的代码中?我应该在这门课上放些什么?抱歉,有点困惑。我也在试图理解你需要什么哈哈,我的建议是你在代码中创建你的“新类”,并扩展你想要的类(从外部库导入),这样所有来自该类的属性和方法都将继承到你的“新类”请详细说明您需要阅读您提供的url中的文档,AppContext(ApplicationContext)已经做到了我上面所说的。。。所以你只需要把你的逻辑放在这个类里面,因为ApplicationContext是lib的外部,所以只要实现这个类,你想做什么就做什么,这正是我想要做的@Diego Vinicius。我是否应该将过去的类Ui_表单(qtwidts.QMainWindow):复制到类AppContext(ApplicationContext):?应该修改什么使它们工作?您应该使用lib作为外部依赖项,并在其上实现。。。Ui_表单来自您的代码,对吗?