【发布时间】:2013-05-09 17:54:03
【问题描述】:
我在QScrollArea 中有一些小部件,我在这些小部件之间拖动,问题是QScrollArea 在里面拖动时不会滚动,所以如果我想在小部件之间拖动A 到小部件 B 并且小部件 B 在视口上不可见,当鼠标移动到视口边缘时,QScrollArea 不会自动滚动。
【问题讨论】:
标签: qt drag-and-drop qt4 qscrollarea
我在QScrollArea 中有一些小部件,我在这些小部件之间拖动,问题是QScrollArea 在里面拖动时不会滚动,所以如果我想在小部件之间拖动A 到小部件 B 并且小部件 B 在视口上不可见,当鼠标移动到视口边缘时,QScrollArea 不会自动滚动。
【问题讨论】:
标签: qt drag-and-drop qt4 qscrollarea
子类化您的滚动区域,并添加以下功能之一。
http://qt-project.org/doc/qt-4.8/qwidget.html#mousePressEvent
http://qt-project.org/doc/qt-4.8/qwidget.html#dragMoveEvent
http://qt-project.org/doc/qt-4.8/qwidget.html#dragLeaveEvent // 可能只需要这个
当dragMoveEvent 到达小部件的边缘时,或者当dragLeaveEvent 发生时,检测它在哪个边缘,或者在哪个边缘,然后朝那个方向滚动你的区域。
希望对您有所帮助。
【讨论】:
setAcceptDrops(true);。 qt-project.org/doc/qt-4.8/dnd.html#dropping