在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),并且分別在頁面上放置了一個按鈕。在按鈕的clicked信號中,通過調用switch_page方法來切換頁面。在MainWindow類中,我們創建了一個QStackedWidget,并將頁面添加到其中。通過調用setCurrentIndex方法可以切換當前頁面。在初始化時,默認顯示第一個頁面。
運行上述代碼,你將看到一個窗口,其中有兩個按鈕,分別可以切換到另一個頁面。