[PySide] Double click handling or retaining ownership of mouse events
Cristián Maureira-Fredes
Cristian.Maureira-Fredes at qt.io
Wed Apr 8 14:54:57 CEST 2020
Hello Marco,
On 4/8/20 2:01 AM, Marco Grubert wrote:
> Hello,
>
> I am trying to handle single and double-click events differently in a
> QToolButton.
> From what I have read in forums, Qt does not filter out single click
> events when a double click occurs, in other words there will always be a
> mousePressEvent emitted even if it's actually a double-click. The
> recommended approach in C++ appears to be launching a timer and
> deferring single click handling.
>
> a) If there is a better approach, please let me know!
> b) I tried the implementation below, but in the timerExpired function I
> get the dreaded "Internal C++ object (PySide2.QtGui.QMouseEvent) already
> deleted" error. I guess storing it in a member variable is insufficient?
> (snip)
I would rather base the implementation on the 'doubleClickInterval()'
for the QTimer, and use a boolean variable to handle when it's
single or double click, so you can then implement
'mouseDoubleClickEvent()'.
You can check an implementation here:
https://pastebin.com/Um8b4YrG
Not sure if it's better than your approach,
but at least it's simpler IMHO.
Let me know if that's enough, otherwise, we can try to address the
C++ issues you are having in your code.
Cheers
--
Dr. Cristian Maureira-Fredes
R&D Manager
The Qt Company GmbH
Erich-Thilo-Str. 10
D-12489 Berlin
Geschäftsführer: Mika Pälsi,
Juha Varelius, Mika Harjuaho
Sitz der Gesellschaft: Berlin,
Registergericht: Amtsgericht
Charlottenburg, HRB 144331 B
More information about the PySide
mailing list