QTabWidget如何修改left-arrow和right-arrow的样式
1.Qt5.12.5的源码
void QTabBarPrivate::init()
{
Q_Q(QTabBar);
leftB = new QToolButton(q);
leftB->setAutoRepeat(true);
QObject::connect(leftB, SIGNAL(clicked()), q, SLOT(_q_scrollTabs()));
leftB->hide();
rightB = new QToolButton(q);
rightB->setAutoRepeat(true);
QObject::connect(rightB, SIGNAL(clicked()), q, SLOT(_q_scrollTabs()));
rightB->hide();
#ifdef QT_KEYPAD_NAVIGATION
if (QApplication::keypadNavigationEnabled()) {
leftB->setFocusPolicy(Qt::NoFocus);
rightB->setFocusPolicy(Qt::NoFocus);
q->setFocusPolicy(Qt::NoFocus);
} else
#endif
q->setFocusPolicy(Qt::TabFocus);
#ifndef QT_NO_ACCESSIBILITY
leftB->setAccessibleName(QTabBar::tr("Scroll Left"));
rightB->setAccessibleName(QTabBar::tr("Scroll Right"));
#endif
q->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
elideMode = Qt::TextElideMode(q->style()->styleHint(QStyle::SH_TabBar_ElideMode, 0, q));
useScrollButtons = !q->style()->styleHint(QStyle::SH_TabBar_PreferNoArrows, 0, q);
}
可以看出,QTabBar的两个ToolButton的PropertyName 分别是accessibleName="Scroll Left"、accessibleName="Scroll Right"
2.修改样式表
QTabBar QToolButton[accessibleName="Scroll Left"]{border:0px;background-color:navy;}
QTabBar QToolButton[accessibleName="Scroll Right"]{border:0px;background-color:violet;}