A drag source in Qt is any QWidget derivative in which:
- MousePressEvent() is implemented to note when and where the mouse is clicked-down
- MouseReleaseEvent() is implemented to note that the mouse is no longer clicked-down
- MouseMoveEvent() is implemented and detects when the mouse has moved far enough, or been down long enough, to show that the user wants to begin a drag, and then...
- It starts a drag by creating a QDrag object, loading it with data, and executing it.
One way to look at drag is that it is a peculiar kind of modal dialog, much like a QFileDialog. When the user manipulates the mouse in a certain way, you know you should initiate this "dialog". When the drag pseudo-dialog completes, you have a result that sometimes indicates what happened. Other times you are left guessing.
In the next post, we'll look at some real code to see how this is done.
No comments:
Post a Comment