📜  PyQt5 – QTabWidget(1)

📅  最后修改于: 2023-12-03 15:33:54.344000             🧑  作者: Mango

PyQt5 – QTabWidget

PyQt5中的QTabWidget是一个多页容器部件,可以用于显示由不同页组成的信息。在本文中,我们将研究如何使用QTabWidgetPyQt5中创建一个多页应用程序。

创建多个选项卡

要创建一个多页应用程序,您需要首先在QTabWidget中创建多个选项卡。以下是如何创建三个选项卡的代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTabWidget, QVBoxLayout

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('QTabWidget Demo')
        self.setGeometry(100, 100, 600, 400)

        # Create a QTabWidget instance
        tabs = QTabWidget()
        tabs.resize(300, 200)

        # Create tabs
        tab1 = QWidget()
        tab2 = QWidget()
        tab3 = QWidget()

        # Add tabs
        tabs.addTab(tab1, "Tab 1")
        tabs.addTab(tab2, "Tab 2")
        tabs.addTab(tab3, "Tab 3")

        # Create a QVBoxLayout to add tabs to the layout
        layout = QVBoxLayout()
        layout.addWidget(tabs)

        # Set the layout of the main window
        self.setLayout(layout)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    ex.show()
    sys.exit(app.exec_())

在这个应用程序中,我们创建了一个QTabWidget的实例,然后创建了三个QWidget实例作为选项卡。最后,我们将这些选项卡添加到QTabWidget中,并将整个布局添加到主窗口中。

向选项卡添加小部件

要向选项卡中添加小部件,您需要使用适当的布局将小部件添加到特定的选项卡中。以下是如何在Tab 1中添加QLabel的代码:

# Create a QVBoxLayout for the first tab
layout = QVBoxLayout()

# Create a QLabel widget and add it to the layout
label = QLabel("Hello, World!")
layout.addWidget(label)

# Set the layout of the first tab
tab1.setLayout(layout)

通过使用类似的方法,您可以很容易地在其他选项卡中添加其他小部件。

修改选项卡样式

您可以使用QTabWidget的一些方法来修改选项卡的样式。例如,您可以更改选项卡之间的间距:

# Set tab position to South
tabs.setTabPosition(QTabWidget.South)

# Set tab spacing to 10 pixels
tabs.setTabBarSpacing(10)

您还可以使用样式表来自定义选项卡的样式:

# Create a style sheet for the QTabWidget
style_sheet = """
    QTabWidget::tab-bar {
        alignment: center;
    }

    QTabBar::tab {
        background-color: #1e1e1e;
        color: #ffffff;
        min-width: 20ex;
        padding: 5px;
        border: 1px solid #1e1e1e;
    }

    QTabBar::tab:selected {
        background-color: #efefef;
        color: #000000;
        border-bottom: none;
    }
"""

# Set style sheet for the QTabWidget
tabs.setStyleSheet(style_sheet)

这将为选项卡创建一个样式表。 QTabWidget = ::tab-bar样式指定了选项卡栏的样式。 QTabBar :: tab样式指定了单个选项卡的外观。选项卡的默认选择值是QTabBar :: tab:selected

结论

PyQt5中,QTabWidget是一个很有用的多页容器部件,它允许您在单个窗口中组织大量的信息,从而保持您的用户界面整洁。本文解释了如何使用QTabWidget创建多个选项卡,向选项卡添加小部件以及如何自定义选项卡的样式。