2011-09-16 6 views
0

QComboBox를 상속받은 클래스가 있습니다. 이 위젯에 빨간색 테두리를 설정해야합니다. 내가 QPalette을 사용할 수 없습니다
, 나는 setStyleSheet 사용하는 것을 시도하고있다 :
pComboBox->setStyleSheet("QFrame { border: 2px solid red; }")
그것은 QLineEdit에 대한 잘 작동을하지만, QComboBox을 위해 나는 팝업보기가 아닌 콤보 상자의 주위에 빨간색 테두리를 얻었다.
QComboBox의 프레임에 액세스하려면 어떻게해야합니까?QComboBox에서 테두리 색을 변경할 수 없습니다.

답변

0

이 문제를 해결하는 가장 쉬운 방법은 paintEvent()에서 빨간색 사각형을 사용하는 위젯을 서브 클래 싱하는 것입니다.

0

QFrame이 아닌 QComboBox 선택자를 사용해야합니다 (또는 두 가지 스타일을 원할 경우 모두 선택).

pComboBox->setStyleSheet("QComboBox { border: 2px solid red; } QFrame { border: 2px solid blue; }") 

는 위젯 스타일에 대한 자세한의 StyleSheet examples를 참조하십시오.

+0

QComboBox에서 작동하지만이 스타일을 설정하면 QComboBox는 XP가 아닌 Win95 콤보 상자처럼 보입니다. 그리고 그것은 내가 사용하는 위젯 (QComboBox를 상속받습니다)에서 전혀 작동하지 않습니다. setStyleSheet로 내 위젯의 클래스 이름을 사용하더라도 ( – Funt

+0

) 내가 찾은 모든 방법을 시도했지만 이제는 SomeComboBox에 QFrame을 하나 더 추가하고 빨간색 테두리를 만들기 위해 사용하는 것이 좋은지 궁금하다. – Funt

+0

콤보 박스를 양식화하자마자 Qt는 더 이상 네이티브 OS 버전을 사용할 수 없으며, 어쨌든 스타일을 지정하여 네이티브 룩을 깨뜨릴 수 있습니다. 따라서 콤보 상자의 스타일을 혼란스럽게 만들려는 경우, 훨씬 더 전체 위젯 – Chris

관련 문제