📅  最后修改于: 2023-12-03 14:45:51.069000             🧑  作者: Mango
在 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 中的标签可以很容易地配置每一边的边框大小。这可以通过在样式表中使用 border-top、border-right、border-bottom 和 border-left 属性来实现。