首页 > 其他分享 >PyQt5 QTabWidget设置为侧边栏并且文字水平显示 --可能是最好的方法(完美支持QT设计器,每次更新时不需要重复添加文件

PyQt5 QTabWidget设置为侧边栏并且文字水平显示 --可能是最好的方法(完美支持QT设计器,每次更新时不需要重复添加文件

时间:2022-11-09 11:35:41浏览次数:94  
标签:文字水平 QT index -- self PyQt5 QtWidgets QTabWidget size

效果预览:

使用之前(直接截的设计器里面的图:

image

使用之后效果:

image

教程:

1,QT设计器部分:

打开QT设计器,选择已经放入的TabWidget选择提升为:
image
然后输入下面内容,点击添加和提升:
image

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官方文档(但是基本没看

标签:文字水平,QT,index,--,self,PyQt5,QtWidgets,QTabWidget,size
From: https://www.cnblogs.com/Lemon-233/p/16872911.html

相关文章