如何使用 QWidget 作为 QTabWidget 的布局?

How to use QWidget as layout for QTabWidget?

我读到可以使用简单的 QWidget 作为 QTabWidget 页面的布局,这样我就可以按照我想要的方式设计标签页。 我该如何实施?

QWidget 的一个功能是作为一个容器,因此只需要在每个选项卡中添加它:

from PyQt5 import QtCore, QtGui, QtWidgets, QtPrintSupport


class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.tab_widget = QtWidgets.QTabWidget()
        self.setCentralWidget(self.tab_widget)

        page1 = QtWidgets.QWidget()
        page2 = QtWidgets.QWidget()

        for page, title in ((page1, "Page1"), (page2, "Page2")):
            self.tab_widget.addTab(page, title)

        lay1 = QtWidgets.QVBoxLayout(page1)
        for i in range(3):
            lay1.addWidget(
                QtWidgets.QLabel(f"label{i}", alignment=QtCore.Qt.AlignCenter)
            )
        lay1.addStretch()

        lay2 = QtWidgets.QVBoxLayout(page2)
        for i in range(4):
            lay2.addWidget(QtWidgets.QPushButton(f"button {i}"))
        lay2.addStretch()

        self.resize(640, 480)


if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec())