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
_______________________________________________
PySide mailing list
PySide@qt-project.org
https://lists.qt-project.org/listinfo/pyside

Reply via email to