效果预览:
使用之前(直接截的设计器里面的图:
使用之后效果:
教程:
1,QT设计器部分:
打开QT设计器,选择已经放入的TabWidget选择提升为:
然后输入下面内容,点击添加和提升:
2,py部分:
在你的ui转py的目录下新建一个文件tabwidget.py
然后在里面加入:
from PyQt5 import QtGui, QtCore, QtWidgets
class HorizontalTabBar(QtWidgets.QTabBar):
def paintEvent(self, event):
painter = QtWidgets.QStylePainter(self)
option = QtWidgets.QStyleOptionTab()
for index in range(self.count()):
self.initStyleOption(option, index)
painter.drawControl(QtWidgets.QStyle.CE_TabBarTabShape, option)
painter.drawText(self.tabRect(index),
QtCore.Qt.AlignCenter | QtCore.Qt.TextDontClip,
self.tabText(index))
def tabSizeHint(self, index):
size = QtWidgets.QTabBar.tabSizeHint(self, index)
if size.width() < size.height():
size.transpose()
return size
class TabWidget(QtWidgets.QTabWidget):
def __init__(self, parent=None):
QtWidgets.QTabWidget.__init__(self, parent)
self.setTabBar(HorizontalTabBar())
3,成功展示:
保存并且确定在QT设计器里面已经把QTabWidget提升为刚才新建的那个,然后转成py
然后直接运行即可看见效果
4,如果你不用QT设计器,那么可以参考下面的资料
参考链接:
https://stackoverflow.com/questions/46607298/pyqt-qtabwidget-horizontal-tab-and-horizontal-text-in-qtdesigner/63198915#63198915
https://stackoom.com/question/3SxP6
QT官方文档(但是基本没看