Python:如何合并Python类?
在多次尝试失败后,我找到了在github上构建python桌面应用程序的fbs模块教程。它提供了一个示例脚本以及如何将该脚本与fbs模块集成 如何将示例应用程序中的类合并到我的代码中 示例应用程序代码: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
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_表单来自您的代码,对吗?