每个qstackkedwidget页面的类



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

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

我该怎么做?

创建多个模块:

widget1.py

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

widget2.py

from PyQt5.QtWidgets import QWidget
class Widget2(QWidget):
def __init__(self, *args, **kwargs):
QWidget.__init__(self, *args, **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_()

相关内容

  • 没有找到相关文章

最新更新