// QTabBar::setTabButton(index, closeSide, closeButton); void tst_QTabBar::tabButton() { QFETCH(QTabBar::ButtonPosition, position); QTabBar::ButtonPosition otherSide = (position == QTabBar::LeftSide ? QTabBar::RightSide : QTabBar::LeftSide); QTabBar tabbar; tabbar.resize(500, 200); tabbar.show(); QTRY_VERIFY(tabbar.isVisible()); tabbar.setTabButton(-1, position, 0); QVERIFY(tabbar.tabButton(-1, position) == 0); QVERIFY(tabbar.tabButton(0, position) == 0); tabbar.addTab("foo"); QCOMPARE(tabbar.count(), 1); tabbar.setTabButton(0, position, 0); QVERIFY(tabbar.tabButton(0, position) == 0); QPushButton *button = new QPushButton; button->show(); button->setText("hi"); button->resize(10, 10); QTRY_VERIFY(button->isVisible()); QTRY_VERIFY(button->isVisible()); tabbar.setTabButton(0, position, button); QCOMPARE(tabbar.tabButton(0, position), static_cast<QWidget *>(button)); QTRY_VERIFY(!button->isHidden()); QVERIFY(tabbar.tabButton(0, otherSide) == 0); QCOMPARE(button->parent(), static_cast<QObject *>(&tabbar)); QVERIFY(button->pos() != QPoint(0, 0)); QPushButton *button2 = new QPushButton; tabbar.setTabButton(0, position, button2); QVERIFY(button->isHidden()); }
void HorizontalTabWidget::setCurrentIndex(int index) { int xPos = 0; for(unsigned i = 0; i < m_tabButtons.size(); i++) { QPushButton * button = m_tabButtons[i]; if(button->isHidden()){ button->move(0,0); continue; } QString style; style.append("QPushButton { border: none; background-color: #808080; "); style.append(" border-right: 1px solid black;"); style.append(" border-bottom: 1px solid black;"); style.append(" padding-left: 10px;"); style.append(" padding-right: 10px;"); style.append(" padding-top: 5px;"); style.append(" color: white;"); if( i == m_tabButtons.size() - 1 ) { style.append(" border-right: none;"); } style.append("}"); button->setStyleSheet(style); button->adjustSize(); button->move(xPos,0); xPos = xPos + button->width(); } m_tabBarLine->setFixedWidth(xPos); m_tabBarLine->raise(); QPushButton * button = m_tabButtons[index]; QString style; style.append("QPushButton { border: none; background-color: #95B3DE; "); style.append(" border-right: 1px solid black;"); style.append(" padding-left: 10px;"); style.append(" padding-right: 10px;"); style.append(" padding-top: 5px;"); style.append(" color: white;"); if( index == int(m_tabButtons.size() - 1) ) { style.append(" border-right: none;"); } style.append("}"); button->setStyleSheet(style); button->raise(); m_pageStack->setCurrentIndex(index); }