2011-02-08 5 views
1

QPalette 개체를 수정하여 누르는 QPushButton의 배경색을 변경하는 방법이 있습니까? 스타일 시트로 할 수 있지만 QPalette를 수정하여 스타일 시트를 만들 수있는 방법을 알고 싶습니다. 누르지 않은 경우 하나의 버튼의 배경색을 변경하는 방법과 비슷한 : 버튼의 pressed 신호에누를 때 QPushButton 색 변경

QPushButton myButton; 
QPalette p(myButton.palette()); 

p.setColor(QPalette::Button, QColor("#ffffff")); 
myButton.setPalette(p); 

답변

2

QPushButton의 pressed() 신호에 연결하고 팔레트를 원하는 색으로 업데이트 한 다음 released() 신호에 연결하고 색을 이전 색으로 전환하십시오. 그렇게해야합니다.

색상을 설정하거나 극단적 인 경우 repaint()을 입력 한 후 update()을 실행하고 싶을 수 있습니다.

+0

영리한! 감사! – Chris

1

연결 및 연결 슬롯에 팔레트를 설정합니다. 즉시 업데이트하도록하려면 repaint()으로 전화해야 할 수도 있습니다.

0

버튼을 눌렀을 때 버튼에 스타일 시트를 설정할 수 있습니다 .. here is the Example은 버튼 스타일 시트를 설정하는 방법을 알려주지 만, 두 가지 스타일 시트가 필요합니다. 다른 스타일 시트로 재설정해야합니다.

2

는 단순히 qbushbutton 자체 또는 그의 부모는 QWidget에 스타일 시트를 추가하십시오 QPushButton을 체크 할 때

qwidget.setStyleSheet("QPushButton:checked { background-color: red; }") 

이 빨간색으로 배경색을 설정합니다.