> On 16 Aug 2022, at 18:45, Scott Bloom <sc...@towel42.com> wrote: > > I have a QTextEdit derived class, that sets setMouseTracking( true ) in the > constructor. Note, this isn’t about QTextEdit and should I use QTextBrowser. > Ive had this issue multiple times over the last 20 years of Qt development, > and the solution has always been the same and I am not convinced it’s the > correct way. > > When there is a mouseMoveEvent in which the anchor at the mouse position is > not empty, I override the cursor. > > When the anchor at the point is empty, I restore the cursor > > On mouseReleaseEvent I open the URL from the anchor. > > All works great (yes I know QTextBrowser should be able to be used, but there > are some issues with that, and its not the issue) > > The problem is, when the mouse leaves the widget there isn’t a > “mouseLeaveEvent” so if the mouse is able to leave with the cursor > overridden, it stays overridden. > > The workaround, I added a eventFilter on the parent widget. If the parent > widget receives any event and the globalPos of the cursor (using > QCursor::pos() ) is outside the widget its restores the cursor. It works, > however it seems a bit hackish > > What is the “proper” methodology for tracking when a mouse leaves the widget? > Ive tried various methods through the years, and this is the way that I find > works > > Full source for the widget can be found here > https://github.com/towel42-com/SABUtils/blob/trunk/HyperLinkLineEdit.cpp > https://github.com/towel42-com/SABUtils/blob/trunk/HyperLinkLineEdit.h > > Thanks. > > Scott
Hey Scott, This should be a job for a QWidget::leaveEvent override: https://doc.qt.io/qt-6/qwidget.html#leaveEvent Volker _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest