QTabWidget将TabBar标签靠上居中
时间: 2024-04-05 10:33:37 浏览: 254
要将QTabWidget的TabBar标签靠上并居中,您可以使用以下代码:
```python
from PyQt5.QtWidgets import QApplication, QTabWidget, QVBoxLayout, QWidget, QStyleOptionTab, QStylePainter
class CustomTabWidget(QTabWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setStyleSheet("QTabBar::tab { height: 50px; }") # 设置标签高度
self.setTabPosition(QTabWidget.West) # 设置标签位置为左侧
def paintEvent(self, event):
# 调整标签的绘制位置
painter = QStylePainter(self)
opt = QStyleOptionTab()
for index in range(self.count()):
self.initStyleOption(opt, index)
opt.rect.moveTop(0) # 将标签绘制位置移动到顶部
painter.drawControl(QStyle.CE_TabBarTabShape, opt)
painter.drawControl(QStyle.CE_TabBarTabLabel, opt)
# 创建应用程序和窗口
app = QApplication([])
window = QWidget()
# 创建自定义的TabWidget
tab_widget = CustomTabWidget()
tab_widget.addTab(QWidget(), "Tab 1")
tab_widget.addTab(QWidget(), "Tab 2")
tab_widget.addTab(QWidget(), "Tab 3")
# 将TabWidget添加到布局
layout = QVBoxLayout()
layout.addWidget(tab_widget)
# 设置窗口布局
window.setLayout(layout)
window.show()
# 运行应用程序
app.exec_()
```
这段代码创建了一个自定义的TabWidget类,继承自QTabWidget,并重写了paintEvent方法来调整标签的绘制位置。通过设置标签位置为左侧(QTabWidget.West)并将标签绘制位置移动到顶部,实现了TabBar标签靠上居中的效果。
阅读全文