在QListView中,我想禁用鼠标拖动多项选择 - 也就是说,mous down on a row,拖动鼠标并在拖动时选择它下面的行。
我仍然喜欢使用CTRL鼠标点击选择行。
这可能吗?
答案 0 :(得分:10)
您似乎已将列表视图的选择模式设置为QAbstractItemView :: MultiSelection。尝试使用:
将其设置为QAbstractItemView :: ExtendedSelectionlistView->setSelectionMode( QAbstractItemView::ExtendedSelection );
看看是否有帮助。
答案 1 :(得分:3)
我认为最简单的方法是从QListView创建派生类,然后覆盖其mouseMoveEvent函数。 QListView的Qt代码中的此函数查找拖动状态并创建矩形。我认为这样的事情可能有用,但我没有测试它:
void DerivedListView::mouseMoveEvent(QMouseEvent *e) {
if (state() != DragSelectingState)
QListView::mouseMoveEvent(e);
}