Python 从多个类组成PyQt5 UI

Python 从多个类组成PyQt5 UI,python,pyqt5,qmainwindow,Python,Pyqt5,Qmainwindow,我有一个用QT设计器设计的UI。它由三个选项卡组成: 1-试验;2列哈尔列车;3-火车头 在每个选项卡中,我都有一些按钮、行或小部件,但当我创建代码向这些按钮或小部件添加功能时,我希望每个选项卡有3个类,一个类仅用于第一个选项卡,一个类仅用于第二个选项卡,依此类推。。 第四个类调用所有三个类并组成我的UI。我不知道如何做到这一点,我需要从QMainWindow继承每个类?我需要在每节课上设置UI 这是我当前的代码: import sys from PyQt5 import QtWidgets,

我有一个用QT设计器设计的UI。它由三个选项卡组成:

1-试验;2列哈尔列车;3-火车头

在每个选项卡中,我都有一些按钮、行或小部件,但当我创建代码向这些按钮或小部件添加功能时,我希望每个选项卡有3个类,一个类仅用于第一个选项卡,一个类仅用于第二个选项卡,依此类推。。 第四个类调用所有三个类并组成我的UI。我不知道如何做到这一点,我需要从QMainWindow继承每个类?我需要在每节课上设置UI

这是我当前的代码:

import sys
from PyQt5 import QtWidgets, QtCore, QtGui
from Qt_designer_UI import Ui_MainWindow

class Test(QtWidgets.QMainWindow):
    def __init__(self):
        super(Test, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

class Train_Haar(QtWidgets.QMainWindow):
    def __init__(self):
        super(Train_Haar, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)


class Train_HOG(QtWidgets.QMainWindow):
    def __init__(self):
        super(Train_HOG, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)


class Compose_UI(QtWidgets.QMainWindow):
    def __init__(self):
        super(Compose_UI, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        Test()
        Train_Haar()
        Train_HOG



if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = Compose_UI()
    window.show()
    sys.exit(app.exec_())

我需要从QMainWindow继承每个类?

不,这是不必要的,因为它是一个小部件,将在选项卡中,该小部件可以是任何类型

我需要在每节课中设置UI?

只有在pyuic和Qt Designer的帮助下使用生成的类时,才必须调用setupUi,在您的情况下,每个选项卡中的小部件都是使用Qt Designer生成的?我知道我没有

请记住,您的.ui是

一种可能的解决办法是:

导入系统 从PyQt5导入QtWidgets、QtCore、QtGui 从Qt_设计器_UI导入UI_主窗口 类测试(qtwidts.QWidget): def uuu init uuu(self,parent=None): 超级(测试,自我)。\uuuuu初始化\uuuuuuu(父级) #用于测试 lay=qtwidts.QVBoxLayout(self) lay.addWidget(qtwidts.QPushButton(“测试”)) 课堂培训(qtwidts.QWidget): def uuu init uuu(self,parent=None): 超级(训练、自我).\uuuuu初始(家长) #用于测试 lay=qtwidts.QVBoxLayout(self) lay.addWidget(QtWidgets.QPushButton(“Train_Haar”)) 课堂训练(qtwidts.QWidget): def uuu init uuu(self,parent=None): 超级(训练猪,自我)。\uuuuu初始(父) #用于测试 lay=qtwidts.QVBoxLayout(self) lay.addWidget(QtWidgets.QPushButton(“火车头”)) 类组合UI(QtWidgets.QMainWindow): 定义初始化(自): 超级(组合用户界面,自我)。\uuuu初始化 self.ui=ui\u主窗口() self.ui.setupUi(self) 测试=测试() 火车 火车头=火车头() 对于w,标签在拉链中( (测试,train_haar,train_hog),(self.ui.tab1,self.ui.tab2,self.ui.tab3) ): lay=qtwidts.QVBoxLayout(选项卡) lay.addWidget(w) 如果名称=“\uuuuu main\uuuuuuuu”: app=qtwidts.QApplication(sys.argv) window=Compose_UI() window.show() sys.exit(app.exec_())
@eyllanesc我真的很抱歉,我从昨晚开始搜索这个问题,无法解决它,也没有ide如何解决,所以我知道你是一个积极的助手,所以我为@eyllanesc sir“Raju”标记你真的很抱歉是我的朋友,也是他的acc,他也在pyqt上做一个项目,所以他问我怎么解决我不知道怎么解决,所以我请他在这里发帖。由于没有回应,我在这里给你贴上标签,因为这篇帖子与@eyllanesc先生有点相关,我会努力改进的。对不起,你能帮我解决我提出的问题吗