python - PyQt5如何设置TabWidget向西但保持文本水平

标签 python pyqt pyqt5 qtabwidget

enter image description here

如何使文本方向从左到右而不是从上到下

最佳答案

在这个回答中,我将对我的 another answer 进行 Python 翻译。用 C++ 编写。

from PyQt5 import QtCore, QtGui, QtWidgets


class TabBar(QtWidgets.QTabBar):
    def tabSizeHint(self, index):
        s = QtWidgets.QTabBar.tabSizeHint(self, index)
        s.transpose()
        return s

    def paintEvent(self, event):
        painter = QtWidgets.QStylePainter(self)
        opt = QtWidgets.QStyleOptionTab()

        for i in range(self.count()):
            self.initStyleOption(opt, i)
            painter.drawControl(QtWidgets.QStyle.CE_TabBarTabShape, opt)
            painter.save()

            s = opt.rect.size()
            s.transpose()
            r = QtCore.QRect(QtCore.QPoint(), s)
            r.moveCenter(opt.rect.center())
            opt.rect = r

            c = self.tabRect(i).center()
            painter.translate(c)
            painter.rotate(90)
            painter.translate(-c)
            painter.drawControl(QtWidgets.QStyle.CE_TabBarTabLabel, opt);
            painter.restore()


class TabWidget(QtWidgets.QTabWidget):
    def __init__(self, *args, **kwargs):
        QtWidgets.QTabWidget.__init__(self, *args, **kwargs)
        self.setTabBar(TabBar(self))
        self.setTabPosition(QtWidgets.QTabWidget.West)


if __name__ == '__main__':
    import sys

    app = QtWidgets.QApplication(sys.argv)
    w = TabWidget()
    w.addTab(QtWidgets.QWidget(), "tab1")
    w.addTab(QtWidgets.QWidget(), "tab2")
    w.addTab(QtWidgets.QWidget(), "tab3")
    w.show()

    sys.exit(app.exec_())

关于python - PyQt5如何设置TabWidget向西但保持文本水平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51230544/

相关文章:

python - pyqt按钮自动绑定(bind)到on_..._clicked函数,无需connect或pyqtSlot

python - PyQt:QGraphicsView 中的鼠标事件

python - PyGame 游戏在某个地方崩溃 [完成]

python - PyQt5中QUdpSocket没有writeDatagram()函数?

python - QCalendar 示例中的全名月份格式

python - 在绘图中创建填充

python - 数据未显示在 pyqt UI 中

python - 检查一个列表中的项目是否存在于另一列表中

python - Django 中的 WordPress 小部件类型功能

python - 从线程返回值