2014-02-10 4 views

ответ

2

Вы можете сделать это с помощью таблиц стилей Qt. От the docs:

/* 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; 
} 

После того, как вы определили QSS интерес в виде строки, то вы установите QSS на виджете в вопросе с помощью метода setStyleSheet. Если вы заинтересованы только в настройке цвета фона, простая таблица стили вероятно будет достаточно:

yourQTabWidget->setStyleSheet("QTabBar::tab { background-color: #FF0000; }"); 

-stylesheet Опция командной строки также доступна и может быть использована для оформления заявки. В хорошо зарекомендовавшем приложении вы должны быть в состоянии сделать следующее:

yourQtProgram.exe -stylesheet /path/to/your/stylesheet.qss 
+0

Вы должны положить это определение вне класса? Когда я использую этот код, он не компилируется. Кажется, что не нравится линия q lineargradient. – user2494298

+0

Таблицы стилей присутствуют в вашем коде как строка, если не указаны внешние ссылки. Я уточнил свой ответ, чтобы уточнить. –

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