在QListView中,我想禁用鼠标拖动多选功能-即在一行上向下拖动鼠标,然后在拖动的同时选择其下方的行。
我仍然希望使用按住CTRL键并单击鼠标的方式选择行。
这有可能吗?
发布于 2011-11-19 06:37:05
我认为最简单的方法是从QListView创建一个派生类,然后覆盖它的mouseMoveEvent函数。QListView的Qt代码中的此函数用于查找拖动状态并创建矩形。我想像这样的东西可能会起作用,但我没有测试它:
void DerivedListView::mouseMoveEvent(QMouseEvent *e) {
if (state() != DragSelectingState)
QListView::mouseMoveEvent(e);
}
发布于 2011-11-21 11:18:29
您似乎已将列表视图的选择模式设置为QAbstractItemView::MultiSelection。尝试使用以下命令将其设置为QAbstractItemView::ExtendedSelection:
listView->setSelectionMode( QAbstractItemView::ExtendedSelection );
看看这有没有帮助。
https://stackoverflow.com/questions/8188441
复制相似问题