Python 如何使用PyQt5更改同一窗口中的UI?

Python 如何使用PyQt5更改同一窗口中的UI?,python,python-3.x,user-interface,pyqt,pyqt5,Python,Python 3.x,User Interface,Pyqt,Pyqt5,我刚刚开始使用PyQt5。我一直在努力完成一项看似非常简单的任务,但却未能获得足够的信息。在谷歌搜索了一段时间后,我可以关闭一个窗口,启动另一个窗口,同时加载另一个UI,但这不是我想要做的 我想在同一窗口中切换UI。我将UI文件作为全局变量加载到python文件中,其中每个UI有2个类。当我单击一个UI中的特定按钮时,我想切换到同一窗口中的另一个UI。下面是代码示例: from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.

我刚刚开始使用PyQt5。我一直在努力完成一项看似非常简单的任务,但却未能获得足够的信息。在谷歌搜索了一段时间后,我可以关闭一个窗口,启动另一个窗口,同时加载另一个UI,但这不是我想要做的

我想在同一窗口中切换UI。我将UI文件作为全局变量加载到python文件中,其中每个UI有2个类。当我单击一个UI中的特定按钮时,我想切换到同一窗口中的另一个UI。下面是代码示例:

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys
from PyQt5.uic import loadUiType
import os

about_company_ui, _ = loadUiType(os.path.join('frontend', 'ui', 'about_company.ui'))
intern_placement_ui, _ = loadUiType(os.path.join('frontend', 'ui', 'intern_placement.ui'))


class InternPlacement(QMainWindow, intern_placement_ui):

    def __init__(self):
        QMainWindow.__init__(self)
        self.setupUi(self)
        self.intern_pushButton.clicked.connect(self.change)

    def change(self):
        self.about_company = AboutCompany()
        self.about_company.show()
        self.close()


class AboutCompany(QMainWindow, about_company_ui):

    def __init__(self):
        QMainWindow.__init__(self)
        self.setupUi(self)


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

你必须使用

导入操作系统
导入系统
从PyQt5导入QtCore、QtGui、QtWidgets、uic
ui_folder=os.path.join(“前端”、“ui”)
关于公司,loadUiType(os.path.join(ui\u文件夹,“about\u company.ui”))
intern\u placement\u ui,\u=uic.loadUiType(os.path.join(ui\u文件夹,“intern\u placement.ui”))
类InternPlacement(QtWidgets.QMainWindow,intern\u placement\u ui):
def uuu init uuu(self,parent=None):
超级(内部安置,自我)。\uuuuu初始\uuuuuuuu(父级)
self.setupUi(self)
类AboutCompany(QtWidgets.QMainWindow,关于公司用户界面):
def uuu init uuu(self,parent=None):
超级(关于公司,自我)。\uu初始(母公司)
self.setupUi(self)
如果名称=“\uuuuu main\uuuuuuuu”:
app=qtwidts.QApplication(sys.argv)
intern_window=InternPlacement()
关于窗口=关于公司()
w=QtWidgets.QStackedWidget()
w、 addWidget(实习窗口)
w、 addWidget(关于_窗口)
内部窗口。内部按钮。点击。连接(lambda:w.setCurrentIndex(1))
w、 调整大小(640480)
w、 show()
sys.exit(app.exec_())