2017-09-27 5 views
1

스타일 시트를 사용하여 스타일을 성공적으로 설정 한 내 데스크탑 QApplication (Qt 5.9)이 있습니다. 런타임시 모든 QWidget은 의도 한대로 정확하게 스타일이 지정됩니다.
알아 두어야 할 것은 특정 스타일 위젯의 배경색입니다. QTooltip이라고합시다. QStyleSheet를 설정 한 후 QWidget 배경색을 얻는 방법

은 내가 는 QWidget :: 팔레트 방법하지만 내가 물었다 QPalette :: ColorRole에 대한 시스템의 기본 색상처럼 보였다있어 했어요.
또한 qt docs은 스타일 시트를 사용할 때이 방법을 사용하지 않는 것이 좋습니다.

그래서 ... 더 일반적으로 스타일 시트를 통해 정의 된 위젯 속성을 쿼리 할 수 ​​있습니까?

+0

Qt는 당신의 QSS에 따라 QProxyStyle''의 특별 인스턴스를 생성합니다. 그것을 되돌릴 방법이 없습니다. –

답변

0

스타일 시트의 개별 속성에 직접 액세스 할 수 없습니다. 당신이 할 수있는 것은, 스타일 시트를 가져 오는 것입니다. 그러면 그것을 분석하고 찾고있는 속성을 찾아야합니다 (some_widget->styleSheet()QString으로 반환합니다).

팔레트에 직접 액세스하고 싶지 않은 경우 스타일 시트 대신 색상을 사용하여 색상을 변경해야합니다. 대신 스타일 시트의 팔레트를 사용하여 코드의 스타일을 할 수있는 방법

예제 코드 :

QPalette px; 
px.setColor(QPalette::Text, QColor(255, 255, 255)); // Set text color to white 
px.setColor(QPalette::Base, QColor(0, 0, 0)); // Set background to black 
some_widget->setPalette(px); 
관련 문제