- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发一个 Qt 应用程序,其中有一个 QListView。列表中几乎没有项目。我的应用程序需要根据用户的选择重新排列项目。一切正常,但我遇到了一个小问题。
当我使用鼠标进行多项选择时,即通过拖动鼠标选择项目时,即使我进行了一些重新排列操作,它也会在 QlistView 上留下选择标记。我确信它与清除选择有关。我尝试使用 repaint() 或 clearFocus() 但似乎没有任何效果。
例如,当我们选择一组文件夹时,我们拖动鼠标,实习生给我们一个矩形框,它覆盖了它下面的所有项目。那个特定的矩形框保留在我的 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 区域,您会看到我清除焦点并重新绘制,但没有任何帮助。这个问题有什么解决办法吗?
P.S.:我在 Release模式下运行它。
最佳答案
使用
void QAbstractItemView::clearSelection() [slot]
清除选择
此外,所有 View 都有一个选择模型,您可以通过以下方式访问:
QItemSelectionModel * QAbstractItemView::selectionModel() const
允许做更多选择
看Handling selections in item views
另一件事...
#ifdef QT_NO_DEBUG
表示释放
#ifndef QT_NO_DEBUG
将是 Debug模式,我敢肯定,它不会编译您粘贴的代码
关于c++ - 选中多个项目时如何清除QListView的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17339186/
我想从一个 QListView 实现拖放功能到另一个。拖放操作会将拖动项目的文本复制到另一个 QListView .我希望拖放是单向的,我的意思是仅来自 QListView A转QListView B
import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * class Widget(QWidget): def _
我有一个关于当模型对象在外部发生变化时更新 QTreeView(或 QAbstractItemView 的任何子类)的简单问题。假设一个列表显示了 QAbstractItemModel 的一个子类,并
我有一个 QListView 其中有 5 个项目。在我的 QListView 中说(美国、加拿大、丹麦、埃及、芬兰)。现在我想设置一个通用的 所有这些项目的标题为国家 .如何将标题设置为 QListV
我试图按名称、创建日期和上次访问日期(所有升序和降序)对 QFileSystemModel 进行排序。我使用 QSortFilterProxyModel 进行排序。更改排序顺序时不知何故有一个奇怪的效
当鼠标悬停在特定的 ListView 项上时,我想做一些事情。我尝试了 enter(QModelIndex) 信号,但是当光标移动到项目上时它似乎没有发出(即使当光标移动到项目上时它们会突出显示)。是
我正在尝试向 Qt QListView 添加上下文(右键单击)菜单。我在 Qt 3.3 中看到有“contextMenuRequested”(我可以使用) - http://doc.qt.digia.
我正在使用 QListView显示我可以拖放以更改其顺序的项目列表。 问题在于: 下降指示器只是一条非常小的线(1px 粗) 掉落区域非常狭窄,因此需要非常准确才能在其他两个元素之间正确放置元素。 我
当 QListView 中没有项目时,我想显示一些文本(例如“无项目”)。 我尝试重写QListView的paintEvent方法,但没有任何效果。 最佳答案 下面的代码显示了一种通过重载 View
需要在带有图标和复选框的 QListView 中按给定路径列出目录,然后将标记文件夹的名称传输到程序。对于列表目录,我使用代码: #include #include #include i
作为我上一篇文章的另一个问题的延伸。拥有QListView,可以保存和恢复QListview中项目的选择。恢复后所选项目的索引无法正确打印。 使用currentchange - slot方法更改索引,
我正在尝试将独占复选框作为 QListView 项目。我使用 QStandardItemModel 作为带有 QStandardItem 的模型。 我正在向列表中动态添加项目并将其设置为可检查: QS
我正在尝试编写一个 QListView 模型并将其链接到我的主 UI(来自 Qt Designer) 这是我的主要功能: #include "notepad.h" #include int main
我使用 QListView(在 PyQt5 中)来显示字符串。我想让该列表中每个项目的背景颜色在两种颜色之间变化,以使其更易于阅读。 我试过 Qt.DecorationRole 但这只会在每个项目的左
我不明白为什么我的 QListView 小部件不显示滚动条,或者有时将它们显示为黑色。我无法滚动,即使使用向上/向下键也无法滚动。 这是它的样子 这是小部件的 ui 部分
我开发了一个带有复选框的简单对话框,允许用户从列表中选择一个或多个项目。除了标准的确定和取消按钮外,它还添加了全选和取消全选按钮,允许用户一次选中/取消选中所有项目(这对于大型列表很方便)。 impo
我实现了一个继承 QListView 的新类,现在我想修改 sizeHint() 来计算我的新列表查看器的最佳宽度。 首先想到的是连接模型的插入,检索最大长度,但是怎么做呢?或者有更好的建议吗? 非常
我希望用 pyqt4 制作一个小 GUI,逐行显示“dir c:\windows\”的输出我正在寻找 QlistView 但我不明白该怎么做。谁能帮我吗? 最佳答案 import os for roo
总的来说,我对 PyQT 和 QT 还是(非常)陌生,必须快速设计一个与现代 2 Pane 邮件应用程序大致相似的用户界面:左边是邮件列表,右边是编辑器。我想提供更多的信息,而不仅仅是要在 QList
我有一个带有字符串列表的 QListView。 基本上,我将它用作自动完成过程的 QLineEdit 的弹出窗口。我不希望 QListView 显示空白行,只显示其中包含字符串的行。看到这个: 我希望
我是一名优秀的程序员,十分优秀!