2013-08-05 4 views
0

Я использую QTabWidget с несколькими вкладками. Я хочу создать вкладку, которая отличается (имеет другой стиль, а затем остальные вкладки). Например, как firefox имеет кнопку «зеленый плюс», чтобы добавить новую вкладку, отличную от других вкладок.Пользовательская вкладка PySide

Я просматривал документацию и не мог найти ничего, связанного с уникальным стилем вкладки. Я посмотрел на QTabWidget и QTabBar, но не повезло.

Это, как я создаю вкладку

self.tabWidget = QtGui.QTabWidget() 
self.tabWidget.addTab(QtGui.QWidget, "Tab_1") 

Есть ли что-то я упускать из вида?

ответ

5

На самом деле, у Qt действительно хорошая документация с очень хорошими примерами, все here. Main page to stylesheets.

Все, что вам нужно сделать, это установить таблицу стилей или с QtDesigner или питона сам по себе, как это:

self.tabWidget.setStyleSheet("background-color: rgb(255, 255, 255);\n" 
            "border:1px solid rgb(255, 170, 255);") 

Вот пример таблицы стилей (третий пример из Qtabwidget)

QTabWidget::pane { /* The tab widget frame */ 
    border-top: 2px solid #C2C7CB; 
    position: absolute; 
    top: -0.5em; 
} 

QTabWidget::tab-bar { 
    alignment: center; 
} 

/* Style the tab using the tab sub-control. Note that 
    it reads QTabBar _not_ QTabWidget */ 
QTabBar::tab { 
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, 
           stop: 0 #E1E1E1, stop: 0.4 #DDDDDD, 
           stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3); 
    border: 2px solid #C4C4C3; 
    border-bottom-color: #C2C7CB; /* same as the pane color */ 
    border-top-left-radius: 4px; 
    border-top-right-radius: 4px; 
    min-width: 8ex; 
    padding: 2px; 
} 

QTabBar::tab:selected, QTabBar::tab:hover { 
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, 
           stop: 0 #fafafa, stop: 0.4 #f4f4f4, 
           stop: 0.5 #e7e7e7, stop: 1.0 #fafafa); 
} 

QTabBar::tab:selected { 
    border-color: #9B9B9B; 
    border-bottom-color: #C2C7CB; /* same as pane color */ 
} 
+0

Правильно, я понял это, но, используя то, что ВСЕ вкладки будут точно такими же. Каждая вкладка будет иметь одинаковую таблицу стилей. Что делать, если у меня есть 5 вкладок, и я хочу, чтобы у одного из них была совершенно другая таблица стилей, а другая (НЕ считая выбранных/зависавших вкладок). – user2444217

+2

Вы посмотрели на что-то вроде этого: «QTabBar :: tab: first' в качестве селектора? – enginefree

+0

Aha! Извините, это было немым. Это решило. Большое спасибо :) – user2444217

Смежные вопросы