当选择多个项目时如何清除QListView的选择?

2023-12-01

我正在开发一个 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.:我正在发布模式下运行它。


Use

void QAbstractItemView::clearSelection() [slot]

清除选择

此外,所有视图都有一个选择模型,您可以通过以下方式访问:

QItemSelectionModel * QAbstractItemView::selectionModel() const

这允许做更多的事情选择

Look at 处理项目视图中的选择

另一件事 ...

#ifdef QT_NO_DEBUG

意味着释放

#ifndef QT_NO_DEBUG

将是调试模式,我确定,它不会编译您粘贴的代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当选择多个项目时如何清除QListView的选择? 的相关文章

  • C# 中直接从 URL 获取图像尺寸

    我正在尝试使用以下代码直接从网络上获取图片的尺寸 string image http www hephaestusproject com csharp3 png byte imageData new WebClient DownloadDa
  • 构建qt程序时未定义的符号:找不到qt_version_tag

    我正在学习Qt5 6 我正在使用 Ubuntu 14 4 当我链接我的程序时 出现以下错误 undefined reference to qt version tag 在 CMakeLists txt 中 link libraries Qt
  • C++0x 初始值设定项列表示例

    我想看看这个现有代码示例如何利用 C 0x 初始化列表功能 示例0 include
  • 在异步请求中使用超时回调

    我之前问过这个问题 但我将用提出的解决方案来完成这个问题 并提出另一个问题 我正在使用这个类来进行异步网络请求 http msdn microsoft com en us library system net webrequest aspx
  • 如何将 Visual-Studio 2010 切换到 c++11

    我是 c 编程新手 我想尝试 c 11 新功能 那么我要问的是如何切换 Visual studio 2010 才能编译 c 11 源代码 你可以参考这个表 VC10 中的 C 0x 核心语言功能 表格 http blogs msdn com
  • c 使用 lseek 以相反顺序复制文件

    我已经知道如何从一开始就将一个文件复制到另一个文件 但是我如何修改程序以按相反的顺序复制它 源文件应具有读取访问权限 目标文件应具有读写执行权限 我必须使用文件控制库 例如 FILE A File B should be ABCDEF FE
  • 从二进制文件读取字节到 long int

    我有两个问题 我有二进制文件的数据 我想使用 read 函数读取前 8 个字节以签署 long int 但我不能 你知道我该怎么做吗 如何直接读取一块数据到字符串中 我可以像所示那样阅读吗 前任 ifstream is is open te
  • 原子的 C++ 内存屏障

    在这方面我是个新手 谁能提供以下内存屏障之间差异的简化解释 窗户MemoryBarrier 围栏 mm mfence 内联汇编asm volatile memory 内在的 ReadWriteBarrier 如果没有简单的解释 一些好文章或
  • Web 文本编辑器中的 RTF 格式

    网络上是否有支持 RTF 格式文档输入的文本编辑器 我知道这对 webdev 来说有点奇怪 但我需要从数据库中读取 RTF 文档 并在基于 Web 的文本编辑器中对其进行编辑 然后将其存储回 RTF 中 在我在转换工具上投入太多资金之前 我
  • 重定向 std::cout

    我需要一个类 在其对象的生命周期内将一个 ostream 重定向到另一个 ostream 经过一番修补后 我想出了这个 include
  • 如果我重新分配并且新大小为 0,会发生什么情况。这与释放等效吗?

    给出以下代码 int a NULL a calloc 1 sizeof a printf d n a a realloc a 0 printf d n a return 0 它返回 4078904 0 这个 realloc 相当于 free
  • 这些工作队列标志意味着什么?

    在研究工作队列时 我遇到了内核中定义的工作队列标志和常量 我有以下我无法理解的疑问 这里的排水和救援到底是什么意思 WQ DRAINING 1 lt lt 6 internal workqueue is draining WQ RESCUE
  • 在 Windows 上使用 C/C++ 开发时省略 msvcr100.dll?

    是否可以在 Windows 上使用 C C 进行开发而不链接到 msvcr100 dll 我知道这是 Windows 的标准 c 库 但我想知道如果我没有安装 Visual Studio 或 Redistributable 软件包 我的计算
  • 如果项目包含多个文件夹,如何使用 Add-Migration

    我想Add Migration使用我的 DbContext 但出现错误 The term add migration is not recognized as the name of a cmdlet function script fil
  • 使用联合对 IP 地址进行多种解释?

    在工作中 我们使用以下构造来将 IP 地址解释为 4 字节数组或 32 位整数 union IPv4 std uint32 t ip std uint8 t data 4 这很好用 但是读完这本书的第 97 章 不要使用联合来重新解释表示
  • 删除数组时出现访问冲突异常

    删除分配的内存时 出现 访问冲突读取位置 异常 如下所示 我有一个针对 Visual Studio 2010 工具集 v100 C 编译器编译的本机 dll 我有一个针对它的托管 dll 包装器 它是针对工具集 v90 编译的 因为我想以
  • 包含从代码隐藏 (ASP.NET C#) 到 ASPX 中的图像概述的图像列表 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Web API 2.0 使用 pascalcase 模型接收驼峰式命名的 JSON 数据

    我正在尝试对我的 Web API 进行 PUT 调用 我在 WebApiConfig cs 中设置了以下内容 以处理以驼峰形式将数据发送回我的 Web 项目 config Formatters JsonFormatter Serialize
  • 在两个点之间创建一条曲线,每个点都具有标准化向量

    因此 我需要一种写入方法来在两点之间创建一条曲线 每个点都有一个指向任意方向的归一化向量 我一直在尝试设计这样一种方法 但一直无法理解数学 在这里 由于一张图片胜过一千个文字 这就是我所需要的 在图中 矢量垂直于红线 我相信向量需要进行相同
  • execlp() 系统调用输出错误

    这个非常简单的例子exec 系统调用 在这里 我试图打电话execlp 两次 但是 我没有得到例外的输出 它仅显示当前目录的第一次调用的输出 include

随机推荐

  • 为什么某些 Matlab 类方法需要“显然”不必要的输出参数 [重复]

    这个问题在这里已经有答案了 在改进我的项目代码几个月后 我终于需要定义一个新类 必须翻阅以前的类定义来刷新约定 我注意到所有构造函数和属性设置器都有一个输出参数 即使没有为其分配任何内容 例如 function o myConstructo
  • 如何在 Visual Studio 2015 中禁用 PDB 文件创建?

    IDE 我使用 Visual Studio 2015 Update 3 语言 C NET 4 5 Issue 当我编译发布解决方案时 会生成 PDB 文件 问题 如何在 Visual Studio 2015 中禁用 PDB 文件创建 在主菜
  • Cassandra 从 2.0.x 升级到 2.1.x 或 3.0.x

    我搜索过这个问题的以前版本 但似乎都不适合我的情况 我有一个运行 2 0 x 的现有 Cassandra 集群 我已分配了新的虚拟机 因此我不想升级现有的 Cassandra 节点 相反 我想迁移到 a 新虚拟机和 b 更新版本的 Cass
  • 为什么使用 pip 而不是 easy_install?

    A tweet reads 不要使用 easy install 除非你 就像在自己脸上捅刀一样 使用点 为什么使用 pip 而不是 easy install 难道不是错误主要在于 PyPI 和包作者 如果作者将垃圾源 tarball 例如
  • DateTime.ParseExact 抛出格式异常

    我有一个以下格式的日期 hh mm ss ffff dd MM yy 例如 20 58 54 5854 28 07 07 但是当我尝试解析该日期时对于 DateTime ParseExact 它会因格式异常而失败 我的确切代码行是 var
  • for循环中的索引变量(_i)?

    看一下这个简单的代码 eat x gt console log nom x dog only eats every second cat feast cats gt eat cat for cat in cats when i 2 0 fe
  • 使用鼠标绘制平移图 - Jfreechart

    Can we implement the pan functionality as a mouse drag event in JfreeChart Right now I press CTRL and drag my mouse to p
  • 在 R 中创建等和的组

    我试图将 data frame data table 的一列分为三组 所有组的总和相等 数据首先按照从最小到最大的顺序排列 这样第一组将由大量具有较小值的行组成 而第三组将由少量具有较大值的行组成 这是通过以下方式实现的 test lt d
  • 如何在 SQL 中将换行符转换为 BR 后保存 Textarea 输入

    我在管理面板中使用 ckeditor 但在用户提交表单中使用简单的文本框 以便用户可以输入文本并提交 问题是 当用户在带有换行符的文本区域中输入文本时 它会保存为 SQL 中的文本 我想在sql的每一行后面添加BR 例如用户提交 F R I
  • R 跳过 /dev/stdin 中的行

    我有一个包含数字列表的文件 自己制作 for x in seq 10000 do echo x done gt file gt R q e x lt read csv file header F summary x gt x lt read
  • 想要:不受 AbandonedMutexException 影响的跨进程同步

    我有几个线程获取互斥体然后终止 互斥体存储在主存储库中 并在程序存在时正确释放 但是 当分配互斥锁的线程存在时 该互斥锁会自动释放 并随后获取 AbandonedMutexException 也根据文档 如何避免此异常 并在分配线程完成后继
  • 摘要 {Hmisc} 删除类别?

    我正在尝试获取包含百分比的交叉表这个文件 using Hmisc 但为什么是summary 从变量 OCCUPATION 中删除类别 其他 library Hmisc summary ID OCCUPATION data df method
  • 如何在管理中的文本区域上默认启用所见即所得?

    如何在文本区域上默认启用所见即所得 我的意思是 我不想单击所见即所得按钮来显示带有tinyMCE的区域 我直接想要这个 经过一番研究后我发现了它 1 将此代码放入您希望编辑器直接显示的 phtml文件中 2 在代码第6行可以看到elemen
  • 为什么 autoload 无法加载 gems 文件

    我正在尝试使用这个在 ruby 中阅读电子邮件Gmail 宝石 When I require gmail 在 IRB 或脚本中 我收到此错误 Library Ruby Gems 1 8 gems gmail 0 4 0 lib gmail
  • 绑定和样式不适用于Win8?

    我从 TextBox 派生并将其命名为 MyTextBox 在我的 LayoutAwarePage 上 我创建了 2 个 SolidColorBrush 道具 MyBackground 和 MyBorder 在该页面的 Xaml 中 我编写
  • 为什么 kubelet 运行在 kubernetes 主节点上?

    我已经使用 kubeadm 在本地笔记本电脑上部署了一个 kubernetes 集群 1 个主节点和 2 个工作节点 请注意 kubelet 也在主节点上运行 从我之前读过的文章来看 只有工作节点上才需要 kubelet 有人可以告诉我为什
  • perl - 用另一个字符替换每第 n 次(和多次)出现的字符

    有谁知道任何unix命令 perl脚本会在特定字符第n次重复出现的位置插入特定字符 可以作为十六进制 即7C 或实际字符 即 输入 IEperl script pl 3 data txt将用管道替换每个第 3 个 第 6 个 第 9 个 等
  • 自动更新 Ruby on Rails 中的created_by 和updated_by 值

    我正在尝试添加当前的user id into a created by and updated by自动字段 谁能帮我 这是数据架构 create table businesses force cascade do t t string b
  • 如何将依赖项包含到 EAR 中,文件名中不包含版本

    我正在创造 ear使用行家
  • 当选择多个项目时如何清除QListView的选择?

    我正在开发一个 Qt 应用程序 其中有一个 QListView 列表中的项目很少 我的应用程序需要根据用户的选择重新排列项目 一切工作正常 但我面临一个小问题 当我使用鼠标进行多重选择时 即通过拖动鼠标选择项目时 即使我做了一些重新排列操作