我读到可以为QTabWidget的页面使用简单的QWidget作为布局,以便我可以按自己的方式设计选项卡页面。
我该如何实施?

最佳答案

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())

10-07 20:41