当选择多个项目时如何清除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的选择? 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 为什么某些 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 列表中的项目很少 我的应用程序需要根据用户的选择重新排列项目 一切工作正常 但我面临一个小问题 当我使用鼠标进行多重选择时 即通过拖动鼠标选择项目时 即使我做了一些重新排列操作