pyqt6 按钮 切换页面
时间: 2023-08-01 12:03:13 浏览: 279
在PyQt6中,按钮切换页面可以通过使用QStackedWidget和QPushButton来实现。
首先,我们需要创建一个QStackedWidget作为容器来存储不同的页面。QStackedWidget类提供了一个堆叠在一起的窗口部件,只有一个可见的子窗口,可以通过索引或子窗口的名称来访问。
然后,我们可以创建多个页面(例如,使用QWidget或其他基础窗口部件类)并将它们添加到QStackedWidget中。每个页面代表一个特定的界面,并使用addWidget()方法将其添加到QStackedWidget中。
接下来,我们可以创建一个QPushButton作为切换按钮,并连接它的clicked信号到槽函数。槽函数将根据需要切换页面。
在槽函数中,我们可以使用setCurrentIndex()方法来设置QStackedWidget当前显示的页面。通过传递页面索引(0表示第一个页面,1表示第二个页面,以此类推)来将希望显示的页面设置为当前页面。
最后,我们需要在应用程序主循环中运行exec_()方法来启动应用程序并显示UI。用户可以点击按钮来切换页面。
下面是一个简单的示例代码:
```python
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QStackedWidget, QVBoxLayout
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.stacked_widget = QStackedWidget(self)
page1 = QWidget()
page2 = QWidget()
self.stacked_widget.addWidget(page1)
self.stacked_widget.addWidget(page2)
button = QPushButton("切换页面", self)
button.clicked.connect(self.switch_page)
layout = QVBoxLayout()
layout.addWidget(button)
layout.addWidget(self.stacked_widget)
self.setLayout(layout)
def switch_page(self):
current_page = self.stacked_widget.currentIndex()
if current_page == 0:
self.stacked_widget.setCurrentIndex(1)
else:
self.stacked_widget.setCurrentIndex(0)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
```
通过运行上述代码,您将得到一个带有切换按钮和两个页面的窗口。点击按钮将在两个页面之间切换。
阅读全文