📌  相关文章
📜  PyQt5 – 标签中每一边的不同边框大小(1)

📅  最后修改于: 2023-12-03 14:45:51.069000             🧑  作者: Mango

PyQt5 – 标签中每一边的不同边框大小

在 PyQt5 中,我们可以方便地为标签(QTabWidget)中的每一边设置不同的边框大小。这可以通过在样式表中使用 border-top、border-right、border-bottom 和 border-left 属性来实现。

以下是一个简单的示例程序,演示了如何在标签中使用不同大小的边框:

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


class MainWindow(QTabWidget):
    def __init__(self):
        super().__init__()

        # 创建标签页
        tab1 = QWidget()
        tab2 = QWidget()

        # 添加到标签中
        self.addTab(tab1, "Tab 1")
        self.addTab(tab2, "Tab 2")

        # 设置样式表
        self.setStyleSheet("""
            QTabWidget::pane {
                border-top: 1px solid #C2C7CB;  /* 顶部边框 */
            }
            QTabWidget::tab-bar {
                left: 5px;  /* 调整标签栏位置 */
            }
            QTabBar::tab {
                border-bottom: 3px solid #C2C7CB; /* 底部边框 */
                border-left: 1px solid #C2C7CB;   /* 左侧边框 */
                border-right: 1px solid #C2C7CB;  /* 右侧边框 */
                padding: 5px;  /* 调整标签内边距 */
            }
        """)

        # 设置布局
        layout1 = QVBoxLayout()
        layout2 = QVBoxLayout()
        tab1.setLayout(layout1)
        tab2.setLayout(layout2)
        layout1.addWidget(QWidget())
        layout2.addWidget(QWidget())

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在上面的示例程序中,我们使用了样式表来设置标签的边框。首先,我们为整个标签(QTabWidget::pane)设置了一个 1 像素的顶部边框。然后,我们为标签栏(QTabWidget::tab-bar)设置了一个左侧外边距(left: 5px),以便调整其位置。最后,我们使用 QTabBar::tab 选择器为每个标签设置了边框。

具体来说,我们为每个标签设置了一个 3 像素的底部边框和 1 像素的左侧和右侧边框,以及 5 像素的内边距(padding: 5px)。

在运行示例程序后,您应该会看到类似下面的标签界面,其中每一边都有不同的边框大小:

PyQt5 Tabs with Different Border Sizes

总之,PyQt5 中的标签可以很容易地配置每一边的边框大小。这可以通过在样式表中使用 border-top、border-right、border-bottom 和 border-left 属性来实现。