2013-08-10 2 views
1

현재 QCustomPlot을 보유하고 있으며 마우스 오버시 구성 요소에 QtoolTip을 표시하려고합니다. 여기 제가 사용하고있는 것이 있습니다. 내 슬롯이야.QToolTip이 잘못된 좌표에 나타납니다

void CustomPlot::DisplayPlotValue(QMouseEvent* val) 
{ 
    QToolTip::showText(val->pos(), "A tool tip"); 
} 

그러나 도구 팁이 잘못된 구성 요소 (실제로 구성 요소가있는 양식에서 제외됨)에 나타납니다. 내가 뭘 잘못하고 있을지에 대한 제안은? 사용는 QWidget :: mapToGlobal 매핑하는

+0

당신은 아마 통과하는 클라이언트 좌표. API 문서를 확인하고'val-> pos()'의 결과를'QToolTip :: showText'가 기대하는 것과 일치시킵니다. –

+0

QToolTip :: showText는 첫 번째 인수로 const QPoint & pos를 기대합니다. [참조] (http://harmattan-dev.nokia.com/docs/library/html/qt4/qtooltip.html#showText) – cpp

답변

1

는 화면 전체를 기준으로 전역 좌표에 위젯을 기준으로 좌표 : 위젯이는 QWidget이

QToolTip::showText(widget->mapToGlobal(val->pos()), "A tool tip"); 

입니다.

2

대신보십시오 : 당신은 그 반대의 경우도 마찬가지 화면 좌표를 전달하거나해야 할 때

QToolTip::showText(val->globalPos(), "A tool tip"); 
+0

이 역시 작동합니다. – Rajeshwar

관련 문제