1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Не знаю как увеличить Tab в PyQt5

Тема в разделе "python", создана пользователем searchengines, 21 май 2019.


Поделиться в соц сетях

  1. searchengines

    searchengines Administrator

    Регистрация:
    5 янв 2019
    Сообщения:
    1.653
    Симпатии:
    2
    Баллы:
    38
    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)


    class ProxyStyle(QtWidgets.QProxyStyle):
    def drawControl(self, element, opt, painter, widget):
    if element == QtWidgets.QStyle.CE_TabBarTabLabel:
    ic = self.pixelMetric(QtWidgets.QStyle.PM_TabBarIconSize)
    r = QtCore.QRect(opt.rect)
    w = 0 if opt.icon.isNull() else opt.rect.width() + self.pixelMetric(QtWidgets.QStyle.PM_TabBarIconSize)
    r.setHeight(opt.fontMetrics.width(opt.text) + w)
    r.moveBottom(opt.rect.bottom())
    opt.rect = r
    QtWidgets.QProxyStyle.drawControl(self, element, opt, painter, widget)


    if __name__ == '__main__':
    import sys

    app = QtWidgets.QApplication(sys.argv)
    QtWidgets.QApplication.setStyle(ProxyStyle())
    w = TabWidget()
    w.addTab(QtWidgets.QWidget(), QtGui.QIcon("ic_apps_black_18dp.png"), "Главное меню")
    w.addTab(QtWidgets.QWidget(), QtGui.QIcon("zoom-in.png"), "Карта")
    w.addTab(QtWidgets.QWidget(), QtGui.QIcon("zoom-out.png"), "Заявки")
    w.addTab(QtWidgets.QWidget(), QtGui.QIcon("zoom-out.png"), "Звонки")
    w.addTab(QtWidgets.QWidget(), QtGui.QIcon("zoom-out.png"), "Статистика")
    w.addTab(QtWidgets.QWidget(), QtGui.QIcon("zoom-out.png"), "Выход")

    w.resize(900, 600)
    w.show()

    sys.exit(app.exec_())
     

Поделиться этой страницей