2017-05-23 15 views
0

설명서를 읽었지만 이에 대한 내용을 찾을 수 없습니다. 예를 들어, 왼쪽 상단에 테이블과 마우스가 있으면 (0, 0), 그러면 마우스 위치에 따라 변경됩니다. 당신의 목적은 아마도 최종 목표를 달성하기 어쨌든, 마우스 위치에 따라 변경되는 GTKLabel은 어떻게 가질 수 있습니까?

당신은 당신이 마우스에서 추적하려는 위젯에 신호를 연결해야 더 좋은 방법이 무엇인지

답변

0

확실하지. 신호는 GtkWidget에서 왔으며 그 이름은 motion-notify-event입니다. 신호 처리기는 마우스 x 및 y 좌표로 이벤트를 수신합니다.

GtkTable (GtkWidget에서 상속)을 마우스로 추적하려면 신호를 연결하고 콜백을 통해 GtkLabel을 업데이트하십시오.

편집 :

@jku가 언급 한 바와 같이 그들이 GdkWindow이 없기 때문에, 일부 위젯이 이벤트를 수신하지 않습니다. 아마도 가장 좋은 옵션은 테이블을 EventBox 컨테이너에 추가 한 다음 앞서 설명한대로 진행하는 것입니다. 또한이 질문은 here입니다.

+0

마지막 단락은 오해의 소지가 있습니다. Motion-notify-event는 여전히 GdkWindow가있는 위젯에서만 작동하며 GtkTable은 동작하지 않습니다. 또한 GDK_POINTER_MOTION_MASK 마스크를 위젯에 설정해야합니다. – jku

+0

@jku 약간의 뉘앙스가 있습니다. 나는 나중에 메시지를 편집 할 것이고, 메신저는 매우 쉽다. 이벤트 박스 컨테이너 일 수도 있고 모션 마스크 플래그를 활성화 할 수도 있습니다 ... 아이디어는 그를 올바른 방향으로 향하게하는 것이 었습니다. 피드백을위한 Tks –