2009-10-07 1 views
0

S60 Qt 앱에서 QPushButton을 사용하고 있습니다.포커스가있을 때 QPushButton 아이콘을 변경하는 방법?

포커스가있을 때 버튼 아이콘을 변경하고 싶습니다.

나는이 시도했습니다

...

navButton->setStyleSheet("background-image: url(c:/Data/navArrowsNotSelected.png);"); 
setStyleSheet("DoubleViewWidget QPushButton:focus {background-image: url(c:/Data/navArrowsSelected.png); border: 2px solid yellow}"); 

...하지만 배경 이미지의 초점이 변경되지 않습니다.

QPalette 등을 사용하여 다른 접근법을 시도했지만 작동하지 않습니다.

위젯의 포커스 스타일을 선택하는 방법이 있습니까?

... 또는 다른 방법이 있습니까?

답변

3

하나의 스타일 시트를 버튼에 직접 설정할 수없고 하나는 상위 위젯에 설정할 수 없습니다. 버튼 하나가 선호됩니다. 이 시도 :

navButton->setStyleSheet("QPushButton { background-color:red; } QPushButton:focus { background-color:blue; }"); 
+0

감사합니다! QPushButton : focus {background-image : url (c : /Data/myIconSelected.png); 테두리 : 2px 솔리드 노란색;} "); –

0

나는 스타일 시트를 통해이 일에 대해 아무것도 말할 수 없다,하지만 당신은 다음 방법 사용할 수 있습니다

1) 서브 클래 싱 QPushButton을하고, 다시 구현할 focusInEvent 및 focusOutEvent (보호 회원)

2) 또 다른 방법은 푸시 버튼 인스턴스에서 "void QPushButton :: installEventFilter (QObject * filterObj)"를 수행하는 것입니다 (filterObj는 사용자 정의 포커스 이벤트 처리를 구현합니다)