2010-02-19 4 views
3

Qt 스타일 시트를 사용하면 4 개 이상의 탭이있는 QTabBar의 각 탭마다 다른 배경색을 설정할 수 있습니까?스타일 시트를 사용하여 인덱싱 된 QTabBar 탭의 배경을 변경하십시오.

My Qt 애플리케이션에는 메뉴 막대 아래에 6 개의 탭이 있습니다. 스타일 시트를 사용하여 배경색을 6 가지 색상으로 변경하고 싶습니다.

이 문제는 내 방식에 서있는 것으로 나타났습니다 :

  • 난 단지 따라서 내가 왜 "라고 4 (순수 스타일 구문을 사용하여"최초 ","중간 "및"마지막 "탭 스타일을 지정할 수 있습니다 또는 더 많은 "탭).

  • 개별 탭이 내가 액세스 할 수있는 QTabBar의 하위 위젯이라고 생각하지 않습니다. 그런 다음 스타일 시트에서 참조 할 수있는 각 하위 탭에 속성을 첨부 할 수 있습니다. 예를 들어

: 어떤 도움이 많이 주시면 감사하겠습니다

// Stylesheet 
QTabBar::tab[index="3"] { 
    background: blue; 
} 

// Code 
QTabBar* bar = new QTabBar; 
int index = bar->addTab("Tab 1"); 
QWidget* tab1; //= ???? 
tab1->setProperty("index", index); 

. 감사.

답변

5

개별 탭은 개체가 아니라 구조체입니다. 이 구조체는 그림에 사용됩니다. 자세한 내용은 Qt source을 참조하십시오.

나는 이것에 대한 실험을했는데 지시 한 것처럼 직접 색인에 액세스 할 수있는 방법을 찾을 수 없습니다. 참고로, 필자는 text, toolTip, whatsThis와 같은 속성을 사용해 보았지만 불행하게도 스타일 시트에서 그 중 하나에 액세스 할 수 없었습니다.

페인트 이벤트를 서브 클래 싱하고 직접 수정하지 않고도 원하는 것을 수행 할 수 있다고 생각하지 않습니다.

+0

답해 주셔서 감사합니다. 내 해결 방법은 탭에서 다른 색의 아이콘을 대신 사용하는 것이 었습니다. – Robin

관련 문제