python - 跨多个实例重用 PyQt 窗口设计
问题描述
我在 QT 设计器中设计了一个窗口,然后将其转换为 Python 代码。然后我创建了继承自 PYQT 代码的 A 类和 B 类。然后我创建第三个类,称为 C 并从 A 类和 B 类继承。
from QTfile import *
from PyQt5.QtWidgets import *
class A(QMainWindow):
def __init__(self):
super().__init__()
self.A1= Ui_MainWindow()
self.A1.setupUi(self)
class B(QMainWindow):
def __init__(self):
super().__init__()
self.B1= Ui_MainWindow()
self.B1.setupUi(self)
现在的问题是当我想使用super().__init__()
功能时,我只能启动其中一个。
class C( A,B):
def __init__(self):
super().__init__()
如果我使用A.__init__()
and B.__init__()
,它只适用于一个类
class C( A,B):
def __init__(self):
A.__init__()
B.__init__()
现在的问题是如何启动多个课程?
解决方案
如果您想在多个窗口实例中重复使用该设计,您可以尝试以下操作:
class BaseWindow(Ui_MainWindow, QMainWindow):
def __init__(self):
Ui_MainWindow.__init__(self)
QMainWindow.__init__(self)
self.setupUi(self)
class A(BaseWindow):
def __init__(self):
super().__init__()
class B(BaseWindow):
def __init__(self):
super().__init__()
推荐阅读
- amazon-web-services - 如何通过 Codepipeline 在 CFN 模板中部署多个 Lambda?
- java - Servlet:HTTP 状态 404 - 未找到
- c# - 使用带有 c# httpclient 的令牌的身份验证错误
- oracle - 关于 Oracle 11G 中的 Inventory 目录,哪两个是正确的?
- python - 在 google colab notebook 中看不到 TensorFlow 日志
- facebook - 无法通过 Post API 隐藏/取消隐藏 Facebook 评论
- linux - Ubuntu 上的 TMUX 问题:新会话顶部总是有一行文本
- php - Mysql 数据库更新,但即使我刷新,我在 php html 中的表也不会更新
- mysql - MySQL:LOAD DATA INFILE 产生不正确的表结果
- c# - 将哈希表应用于对象属性?