먼저 무엇이 문제의 원인인지 이해합시다. 사용자가 마우스 커서를 움직이지 않으면 도구 설명이 숨겨져 야합니다. 따라서 마우스 버튼을 다른 곳에서 놓으면 OS는 해당 툴팁의 시작점 근처가 아닌 툴팁 위에 마우스 이벤트를 잡아서 툴팁을 숨 깁니다.
내 솔루션은 다음과 같습니다. QTimer
을 만들고 필요하면 (5 초) 툴팁을 초당 몇 번 보여줍니다. 문서에서 텍스트를 현재 표시 툴팁과 같은 경우
은 끝이 움직이지 것이라고 말했다 있기 때문에 당신은 그것을 할 수
(즉, showText
를 호출 괜찮습니다 동일한 텍스트에 여러 번)
이 코드를 사용할 수있는 타이머를 만들려면 :
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(100); // ten times per second
을 그리고의 체내기능을 사용하면 현재 시간과이 툴팁의 첫 번째 표시 시간을 비교하고 툴팁이 여전히 필요한 경우 툴팁을 표시 할 수 있습니다 (예 : 5 초 미만으로 표시된 경우).
howLongShown = curTime - startTime; // startTime here is the moment of first showing of the tooltip
if (howLongShown < 5000)
QToolTip::showText(pos, "Message", qglwidgetPtr, rect(), 5000 - howLongShown);
관련 링크 모음 : 관련 링크 : http://stackoverflow.com/a/21365874/2707359 – Ilya
이 링크는 이전에 보았습니다. 하지만 문제를 해결하는 데 도움이되지 않습니다. – user2984369