要使用PyQt5显示重叠的QWidgets,可以使用QStackedWidget或QTabWidget来实现。
QStackedWidget是一个容器类,可以在同一位置显示多个QWidgets,但只有一个QWidget是可见的。可以通过addWdget()方法添加QWidget,并使用setCurrentIndex()方法来设置当前可见的QWidget。QStackedWidget适用于需要在不同的页面间切换显示的情况。
示例代码如下:
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QPushButton, QStackedWidget
import sys
class Page1(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
label = QLabel("Page 1")
layout.addWidget(label)
self.setLayout(layout)
class Page2(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
label = QLabel("Page 2")
layout.addWidget(label)
self.setLayout(layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
stackedWidget = QStackedWidget()
page1 = Page1()
page2 = Page2()
stackedWidget.addWidget(page1)
stackedWidget.addWidget(page2)
stackedWidget.setCurrentIndex(0)
stackedWidget.show()
sys.exit(app.exec_())
QTabWidget也是一个容器类,可以在同一位置显示多个QWidgets,并使用选项卡切换不同的QWidget。可以使用addTab()方法添加QWidget,并使用setCurrentIndex()方法或setCurrentWidget()方法来设置当前选中的QWidget。QTabWidget适用于需要使用选项卡切换不同页面的情况。
示例代码如下:
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QPushButton, QTabWidget
import sys
class Page1(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
label = QLabel("Page 1")
layout.addWidget(label)
self.setLayout(layout)
class Page2(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
label = QLabel("Page 2")
layout.addWidget(label)
self.setLayout(layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
tabWidget = QTabWidget()
page1 = Page1()
page2 = Page2()
tabWidget.addTab(page1, "Page 1")
tabWidget.addTab(page2, "Page 2")
tabWidget.setCurrentIndex(0)
tabWidget.show()
sys.exit(app.exec_())
以上是使用PyQt5显示重叠的QWidgets的方法,可以根据实际需求选择使用QStackedWidget或QTabWidget来实现。
领取专属 10元无门槛券
手把手带您无忧上云