pyqt5不显示外面那层
时间: 2024-01-25 08:10:25 浏览: 75
在PyQt5中,如果想要不显示外面那层,可以使用QMainWindow作为主窗口,然后在主窗口中添加QStackedWidget作为中心窗口,再将需要显示的页面添加到QStackedWidget中。这样就可以实现多个页面的切换,而不会显示外面那层。
以下是一个简单的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QStackedWidget, QWidget, QVBoxLayout, QPushButton, QLabel
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建QStackedWidget作为中心窗口
self.stacked_widget = QStackedWidget()
self.setCentralWidget(self.stacked_widget)
# 添加需要显示的页面
self.page1 = QWidget()
layout1 = QVBoxLayout()
label1 = QLabel('这是第一页')
button1 = QPushButton('切换到第二页')
button1.clicked.connect(self.show_page2)
layout1.addWidget(label1)
layout1.addWidget(button1)
self.page1.setLayout(layout1)
self.stacked_widget.addWidget(self.page1)
self.page2 = QWidget()
layout2 = QVBoxLayout()
label2 = QLabel('这是第二页')
button2 = QPushButton('切换到第一页')
button2.clicked.connect(self.show_page1)
layout2.addWidget(label2)
layout2.addWidget(button2)
self.page2.setLayout(layout2)
self.stacked_widget.addWidget(self.page2)
def show_page1(self):
self.stacked_widget.setCurrentWidget(self.page1)
def show_page2(self):
self.stacked_widget.setCurrentWidget(self.page2)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
阅读全文