[Development] 回复: QPushButton: drag and drop
Giuseppe D'Angelo
giuseppe.dangelo at kdab.com
Mon Jun 6 15:15:13 CEST 2022
On 06/06/2022 10:49, Zhang JiDe wrote:
> I agree that we should fix this, but it's not as simple as passing the
> mouseReleaseEvent to the QPushButton, but we should make sure that for a
> QWidget, whatever happens, the mouse press and release are paired,
> always notify the mouse release to the QWidget of pressed target. If
> adding a new event to it will make things complicated, I suggest adding
> a new item for MouseEventSource, such as: MouseEventSynthesizedByUngrab,
> which is like to XCB_NOTIFY_MODE_UNGRAB, judge the source of QMouseEvent
> in QPushButton, if it is MouseEventSynthesizedByUngrab, do not trigger
> clieck, and update the UI.
Well, whether it's a new event or a new "option" for an existing event,
this would still require modifications to pretty much every widget class
-- e.g. QPushButton would need to check the release event source in its
mouseReleaseEvent, to decide what to do?
I still like an event-driven approach, because I still hope one day that
we can kill all the blocking exec() methods in Qt, and QDrag::exec() is
one of the hardest to get rid of (and one for which we still don't have
a solution in the API).
My 2 c,
--
Giuseppe D'Angelo | giuseppe.dangelo at kdab.com | Senior Software Engineer
KDAB (France) S.A.S., a KDAB Group company
Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com
KDAB - The Qt, C++ and OpenGL Experts
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4244 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.qt-project.org/pipermail/development/attachments/20220606/35bb8fb9/attachment.bin>
More information about the Development
mailing list