pyqt多ページ切り替え機能を実装する方法

PyQtでは、QStackedWidgetを用いて、複数ページを切り替える機能を実現することができます。QStackedWidgetは、複数のページを格納できる重ねられたコンテナで、現在のページを切り替えることで異なるページを表示することができます。

以下に簡単なサンプルコードを示します。これは QStackedWidget を使用して複数ページ切り替え機能を実装する方法を示しています。

from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QPushButton, QWidget, QStackedWidget
import sys

class Page1(QWidget):
    def __init__(self):
        super().__init__()
        layout = QVBoxLayout()
        layout.addWidget(QPushButton('Go to Page 2', clicked=lambda: window.switch_page(1)))
        self.setLayout(layout)

class Page2(QWidget):
    def __init__(self):
        super().__init__()
        layout = QVBoxLayout()
        layout.addWidget(QPushButton('Go to Page 1', clicked=lambda: window.switch_page(0)))
        self.setLayout(layout)

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.stacked_widget = QStackedWidget()
        self.setCentralWidget(self.stacked_widget)

        self.pages = [Page1(), Page2()]
        for page in self.pages:
            self.stacked_widget.addWidget(page)

        self.switch_page(0)

    def switch_page(self, index):
        self.stacked_widget.setCurrentIndex(index)

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

上の例ではPage1とPage2という2つのページを定義し、それぞれのページ上にボタンを設置しました。 ボタンのclickedシグナルにはswitch_pageメソッドを呼び出し、ページを切り替えています。 MainWindowクラスではQStackedWidgetを作成し、ページを追加しています。setCurrentIndexメソッドを呼び出すことで、現在表示するページを切り替えることができます。初期化時には、デフォルトで最初のページが表示されます。

上記のコードを実行すると、2つのボタンを含むウィンドウが表示され、別のページに切り替えることができます。

bannerAds