2011-05-11 2 views
7

체크하고 체크하지 않은 상태에서 사용자 정의 그래픽을 사용하는 컨트롤과 같은 체크 박스가 필요합니다. QIcon과 함께 QToolButton 및 QCheckBox에 대한 모든 문서를 검토했지만 원하는대로 조합을 찾을 수 없습니다.Qt checkbox/toolbutton with custom/distinct check/unchecked icons

단지 체크되지 않은 상태에서 하나의 아이콘 (실제로는 픽스맵)을 사용하고 다른 하나는 체크 된 상태에서 사용하고 싶습니다.

이것은 쉽지는 않지만 필자는 솔루션 (사용자 정의 컨트롤의 부족)이 나를 피하는 것입니다.


나뿐만 아니라 스타일 시트를 사용하여 시도했다

, 그리고 작품의 background-image 종류 QToolButton:checked하지만 정확한 레이아웃을 얻을 수 없다 - 그것은 아이콘으로 크기/위치 아니에요.

답변

15

:: 표시 하위 항목. 아래 코드는 나를 위해 훌륭하게 작동합니다 ...

QCheckBox::indicator { 
    width: 18px; 
    height: 18px; 
} 

    QCheckBox::indicator:checked 
    { 
    image: url(.../Checkbox_checked_normal.png); 
    } 
    QCheckBox::indicator:unchecked 
    { 
    image: url(.../Checkbox_unchecked_normal.png); 
    } 

    QCheckBox::indicator:checked:hover 
    { 
    image: url(.../Checkbox_checked_hovered.png); 
    } 
    QCheckBox::indicator:unchecked:hover 
    { 
    image: url(.../Checkbox_unchecked_hovered.png); 
    } 
    QCheckBox::indicator:checked:pressed 
    { 
    image: url(.../Checkbox_checked_pressed.png); 
    } 
    QCheckBox::indicator:unchecked:pressed 
    { 
    image: url(.../Checkbox_unchecked_pressed.png); 
    } 
    QCheckBox::indicator:checked:disabled 
    { 
    image: url(.../Checkbox_checked_disabled.png); 
    } 
    QCheckBox::indicator:unchecked:disabled 
    { 
    image: url(.../Checkbox_unchecked_disabled.png); 
    } 
2

이 것은 반드시 스타일 시트로 입력해야합니다. 체크 박스를 마우스 오른쪽 버튼으로 클릭하고 "스타일 시트 변경 ..."을 선택하여 디자인 편집기에서이 작업을 수행하십시오.