在其中拖动时,QScollArea不会自动滚动

时间:2013-05-09 17:54:04

标签: qt drag-and-drop qt4 qscrollarea

我在QScrollArea中有一些小部件,我在这些小部件之间拖动,问题是当我拖动它时QScrollArea不会滚动,所以如果我想要在窗口小部件A和窗口小部件B之间拖动,窗口小部件B在视口上不可见,当鼠标移动到视口边缘时,QScrollArea不会自动滚动。

1 个答案:

答案 0 :(得分:3)

对您的滚动区域进行子类化,并添加以下其中一项功能。

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发生时,检测它是哪个边缘,或者离开,然后沿该方向滚动您的区域。

希望有所帮助。