我正在Qt应用程序,我有一个QListView。列表中的项目很少。我的应用程序需要根据用户的选择重新排列项目。一切工作正常,但我面临一个小问题。如何在选择多个项目时清除QListView的选择?
当我使用鼠标即选择项目通过拖动鼠标做多重选择,它的叶子上而QListView选择标记即使我做了一些清理操作。我相信它有一些与清除选择有关。我试图使用repaint()或clearFocus(),但似乎没有任何工作。
E.g当我们选择一组文件夹拖到我们我们的鼠标,它的实习生为我们提供了矩形框覆盖所有属于它的项目。该特定的矩形框留在我的QListView中。我选择了这些项目后我不想要它。
我有一个mousemoveevent这里面我做它:
void BinListView::mouseMoveEvent (QMouseEvent *event) {
if (NULL == event) {
return;
} else {
if (Qt::LeftButton & event->buttons()) {
int nDis = (event->pos() - m_posStart).manhattanLength();
if (nDis >= QApplication::startDragDistance()) {
startDrag (m_posStart);
}
}
#ifdef QT_NO_DEBUG
QListView::mouseMoveEvent (event);
QListView::repaint();
QListView::clearFocus();
#endif
}
repaint();
}
如果您发现QT_NO_DEBUG区,你会看到我的结算重点和重绘但没有什么是我的帮助。 ANY解决这个问题?
P.S:我在释放模式运行它。
清除选择调用它不会让我选择的项目。我担心的是,当我拖动鼠标并选择设置为项目时,它将在列表视图上留下选择标记。 – Gojira
我理解错了。但似乎不仅仅是我。也许你应该重新提出这个问题。无论如何。检查那些方法调用,我确定是错误的 – Trompa
我试过了,但它的工作。例如。当我们选择一组文件夹时,我们拖动我们的鼠标,该实习生给我们提供了一个矩形框,它覆盖了它下面的所有项目。该特定的矩形框始终保持不变。我怎样才能清除它? – Gojira