2009-10-21 4 views
3

QT에서 일부 QLabel 유형의 위젯을 작성하고이를 QToolbar에 추가했습니다. 나는 커서 아래에있는 특정 위젯을 강조하고 싶다. 어떻게 할 수 있는지 이해할 수 없습니다. 누군가 제발 도와 줄 수 있니? QT 4에 대한 정보가 필요합니다.Qwidget, 커서 아래 위젯을 강조 표시하는 방법

고마워요.

답변

9

몇 가지 가능성이 있습니다. 먼저 QLabel을 하위 클래스로 만들 때 mouse events을 클래스에서 직접 처리 할 수 ​​있습니다. 이것을 사용하려면 QWidget :: setMouseTracking()을 사용해야합니다. 그런 경우에는 컨트롤을 사용하여 원하는대로 할 수 있지만 페인트 루틴을 재정 의하여 클래스가 특정 방식으로 그릴 수있게해야합니다.

불행히도 QLabel은 "hover"스타일 시트 상태를 지원하지 않으므로 스타일 시트로 쉽게 할 수 없습니다. 그러나 QPushButton에서 서브 클래 싱을 고려한다면이 훌륭한 기능을 가질 수 있습니다. CSS를 사용하면 멋진 하이라이트 효과를 얻을 수 있습니다. QT의 스타일 시트에 대한 자세한 내용은 here을 참조하십시오.

QPushButton을 서브 클래 싱하는 것이 좋으면 here을보십시오. 그냥 당신이이 간단한 예에서와 같이 가져가 상태를 사용할 수 있는지 확인하십시오 처리 마우스 이벤트에 대한

QPushButton:hover { 
    background-color: black; 
} 
QPushButton:hover { 
    background-color: white; 
} 

예는 here

+0

안녕, 당신의 대답에 대한 감사 찾을 수 있습니다. QLabel에서 마우스 이벤트가 처리되는 특정 예제를 알려주십시오. 또한 QPushButton을 사용하여 시도했지만 프레임과 모든 것을 보여줍니다. QLabel을 사용하는 이유는 무엇입니까? 그러나 QPushButton의 몇 가지 예제 코드도 가르쳐주세요. 덕분에 . – MnshSnghl

+0

예를 들어 링크가있는 게시물을 업데이트했습니다. – alexkr

+0

직접 그림을 그릴 수는 없지만 마우스 입력/마우스 제거 이벤트에서 팔레트의 배경색을 변경하면됩니다. 그것은 충분해야합니다. –

관련 문제