2013-07-24 8 views
2

비활성화 된 QGroupBox 제목을 자세히 살펴보십시오 (첨부 된 이미지 참조).비활성화 됨 QGroupBox 제목 섀도우 (에칭이라고도 함)

disabled QGroupBox

당신은 제목의 편지에서 작은 흰색 1 픽셀의 그림자를 알 수 있습니다.

기본 스타일 시트에서는 거의 눈에 띄지 않지만 어두운 배경과 텍스트 색상을 설정하면 훨씬 더 성가 시게됩니다.

이 그림자를 비활성화하거나 적어도 색상을 변경하려면 어떻게해야합니까?

나는 해결책을 발견했습니다

답변

3

당신이 사용하는 어떤 스타일 : 그래서, 당신은 당신의 위젯의 배경 색상이 색상을 설정? '기본'Windows 스타일처럼 보입니다. 텍스트 그림자를 없애고 싶다면 자신 만의 스타일을 구현하고 비활성화 된 그룹 상자에 텍스트가 그려지는 방식을 바꿀 수 있습니다. QStyle에 대해 자세히 알아보기. 맞춤 스타일을 만드는 방법 here. 링크는 Qt 5.1 용이지만 Qt 4의 경우도 마찬가지입니다.

더 쉬운 방법은 QGroupBox 개체의 팔레트를 변경하는 것입니다. 색상 그룹 QPalette::Disabled 및 색상 역할 QPalette::Light으로 식별되는 색상을 알파 채널을 0으로 설정 한 색상으로 변경합니다 (예 : QColor(0, 0, 0, 0). 이렇게하면 텍스트 그림자가 효과적으로 비활성화됩니다. 그러나, 그것은 또한 당신이 원하는 것이 아닐 수도 있도록 라인의 그림자를 비활성화합니다.

+0

당신은 색으로이 트릭없이 에칭을 제거하기 위해 제 자신의 스타일을 구현할 수 있다고 말합니까? 그것은 정확히 어떻게 행해질 수 있습니까? – Vasily

+1

예. 나는 내 대답을 QStyle 클래스의 문서에 대한 링크로 업데이트했다. 여기에는 맞춤 스타일을 만드는 방법에 대한 섹션이 있습니다. –

+0

저를 위해 일하지 않았습니다. 나는 색깔을 바꾸지 만 일하지 않습니다. – darkgaze

1

: 불행하게도

, 당신이 (일명 에칭) 장애인 텍스트 그림자를 제거 할 수 없습니다,하지만 당신은 더러운 해결 방법을 사용하여 색상을 변경할 수 있습니다 : 그것은 항상 그림자 효과처럼 보이는

을 ColorGroup "Disabled"와 현재 팔레트의 ColorRole "Light"에서 색상을 가져옵니다.

QPalette p = myWidget->palette(); 
p.setColor(QPalette::Disabled, QPalette::Light, QColor(0,0,0)); <- place your widget bg color here 
myWidget->setPalette(p); 

I've found this solution here

+0

이것은 나를 위해 일하지 않았다 ... 멋지다. 같은 대답 이었지만 전혀 작동하지 않았습니다. 어떤 색깔이든 작동하지 않았습니다. 나는 생각하고있다 ... 어쩌면 문제는 그것이 맞춤 위젯이라는 것이다. 이것 좀 봐. – darkgaze