2013-04-24 4 views
0

확인란을 선택하지 않은 경우 확인란의 텍스트를 사용하지 않도록 설정하고 선택했을 때 사용할 수 있도록 설정해야하는 예제 응용 프로그램에서 작업하고 있습니다.QCheckBox 텍스트 사용/사용 안 함

코드 :

if(ui->checkBox->isChecked() == true) 
{ 
    // Enable the text of the checkbox 
} 

else 
{ 
    // Disable the text of the checkbox  
} 

나는 다양한 기사를 보았다하지만 올바른 해결책을 발견하지 않았습니다.

+0

"텍스트 비활성화"란 무엇을 의미합니까, '회색'텍스트입니까? –

+0

@ YamHon.CHAN : 예 .... 기본적으로 텍스트 회색으로 표시됩니다. – Gojira

답변

1

사용하는 모든 위젯를 들어 stylesheet

:

ui->setStyleSheet(
"QCheckBox:checked { 
    {color: black;} 
} 
QCheckBox:unchecked { 
    {color: grey;} 
}" 
) 

편집 :

코멘트에서 언급 한 바와 같이

, 그것은 사용자 정의 테마와 함께 작동하게하려면, 당신은 스타일이 palette를 조회 할 수 있습니다 :

QPalette my_palette = ui->palette() 
QColor my_active_color = my_palette.color(QPalette::Active, QPalette::Text); 
QColor my_disabled_color = my_palette.color(QPalette::Disabled, QPalette::Text); 

QString my_style = 
QString("QCheckBox:checked { {color: rgb(%1, %2, %3);} } "  
"QCheckBox:unchecked { {color: rgb(%4, %5, %6);}}") 
.arg(my_active_color.red()) 
.arg(my_active_color.green()) 
.arg(my_active_color.blue()) 
.arg(my_disabled_color.red()) 
.arg(my_disabled_color.green()) 
.arg(my_disabled_color.blue()); 

ui->setStyleSheet(my_style); 

id 그것을 시험해 본적이 없으며 오타가있을 수 있지만 아이디어를 얻을 수 있습니다.

+3

사용자가 흰색 텍스트로 사용자 정의 색 구성표를 사용하면 어떻게됩니까? 일부 위젯을 스킨으로 처리하는 경우 전체 애플리케이션을 스킨하여 모든 것이 일관성을 유지하도록해야합니다. 하드 코드 된 색상은 여기에서 사용할 수 없으며 활성화 된 텍스트 색상은 현재 팔레트에서 가져와야합니다. – Paul

+0

@Trompa : 나는 이것을 시도했다 :'ui-> checkBox-> setStyleSheet ("QCheckBox :: indicator : checked {{color : black;}} QCheckBox :: indicator : 체크되지 않았다 {{color : gray;}}");' 하지만 작동하지 않는 것 ..... – Gojira

+0

도움을 주셔서 감사합니다 Trompa :) – Gojira

0

나는 해결책을 얻었다. 이것이 내가 이룬 방법입니다 :

ui->checkBox->setStyleSheet("QCheckBox:checked{color: black;} QCheckBox:unchecked{color: grey;}"); 
+0

그래서, 당신은 지시자 부분을 필요로하지 않았다. ... 나쁜 Qt 워드 프로세서 ... 나는 나의 대답을 편집 할 것이다. 누군가 다른 사람이이 질문에 온다면 – Trompa

관련 문제