每个 QStackedWidget 页面的类 widget1.pywidget2.pymain.py

问题描述

我正在使用 PyQt5 和 Qt-Designer 来设计应用程序。

如何为 QstackedWidget 上的每个页面实例化一个类。我可以在一个类中完成,所有小部件都属于同一个 QMainWindow。但是,问题是文件会变得太长而且不切实际。我如何为每个页面分配一个类。例如,类mongoose 5.11.14 node.js 12.19.0 处理页面I 上的所有小部件,而类I 处理页面II 上的所有小部件;在 QMainWindow 文件中,我可以只分配一个代表每个页面的对象。

我该怎么做?

解决方法

只需创建多个模块:

widget1.py

from PyQt5.QtWidgets import QWidget
class Widget1(QWidget):
    def __init__(self,*args,**kwargs):
        QWidget.__init__(self,**kwargs)

widget2.py

from PyQt5.QtWidgets import QWidget
class Widget2(QWidget):
    def __init__(self,**kwargs)

main.py

from widget1 import Widget1
from widget2 import Widget2
from PyQt5.QtWidgets import QMainWindow,QApplication

class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.setTitle("Stackked widget demo")
        self.stacked = QStackedWidget(self)
        self.setCentralWidget(self.stacked)
        self.widget1 = Widget1()
        self.stacked.addWidget(self.widget1)
        self.widget2 = Widget2()
        self.stacked.addWidget(self.widget2)

if __name__ == "__main__":
    app = QApplication([])
    mainwin = MainWindow()
    mainwin.show()
    app.exec_()

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...