pyqt5 tabwidget pestaña vertical alineación de texto horizontal izquierda

Dado que pyqt no tiene texto horizontal en la opción de pestaña vertical, seguí esteenlaza para que esto ocurra. Quería tener iconos a la izquierda y luego texto después del icono y un color diferente para el texto de la pestaña seleccionada, el texto de las pestañas inactivas. El siguiente código lo hace casi. El único problema es que la alineación del texto es el centro. Traté de cambiar tabRect.center () pero cambiarlo con izquierda y arriba o derecha, etc., hace que se bloquee.

El código comentado que recibí deeste enlac me deja alineado pero no tenía iconos que agregué. Pero en eso no puedo cambiar el color del texto de las pestañas inactivas.

Soy nuevo en Python y no puedo encontrar una solución para esto. Intenté esto tambiénenlaza pero esto solo establece el color de fondo. intenté usar esta opción tambiénsetTabTextColor link pero no funcionó por alguna razón. estado intentando desde 2 días.

Cuando intento establecer el color del texto usando una hoja de estilo con código comentado, la opción "color" no funcionará en la hoja de estilo. alguna idea sobre cómo hacer esto? Gracia

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()

        # for i in range(self.count()):
        #     self.initStyleOption(opt, i)
        #     c = self.tabRect(i)
        #     c.moveLeft(35)
        #     painter.drawControl(QtWidgets.QStyle.CE_TabBarTabShape, opt)
        #     # painter.setPen(QColor(255, 255, 255))
        #     painter.drawText(c, QtCore.Qt.AlignVCenter | QtCore.Qt.TextDontClip, self.tabText(i))
        #     if i == 0:
        #         painter.drawImage(QtCore.QRectF(8, 8, 20, 20), QtGui.QImage("images/logo.png"))
        #     if i == 1:
        #         painter.drawImage(QtCore.QRectF(8, 44, 20, 20), QtGui.QImage("images/data.png"))
        #     if i == 2:
        #         painter.drawImage(QtCore.QRectF(8, 82, 20, 20), QtGui.QImage("images/browse.png"))
        #     if i == 3:
        #         painter.drawImage(QtCore.QRectF(8, 120, 20, 20), QtGui.QImage("images/off.png"))
        #     if i == 4:
        #         painter.drawImage(QtCore.QRectF(8, 158, 20, 20), QtGui.QImage("images/cal.png"))
        #     if i == 5:
        #         painter.drawImage(QtCore.QRectF(8, 196, 20, 20), QtGui.QImage("images/fol.png"))
        #     if i == 6:
        #         painter.drawImage(QtCore.QRectF(8, 232, 20, 20), QtGui.QImage("images/exc.png"))
        # painter.end()


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

Respuestas a la pregunta(1)

Su respuesta a la pregunta