【问题标题】:PyQt5 How To Set TabWidget West But Keep The Text HorizontalPyQt5如何设置TabWidget West但保持文本水平
【发布时间】:2023-03-24 06:08:01
【问题描述】:

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

【问题讨论】:

    标签: python pyqt pyqt5 qtabwidget


    【解决方案1】:

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

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

    【讨论】:

    • 工作完美,谢谢。
    【解决方案2】:

    回答here PyQt4 版本,但我也上传了 PyQt5 版本。 请按照程序推广TabWidget

    【讨论】:

      猜你喜欢
      • 2018-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 2018-01-10
      相关资源
      最近更新 更多