【零】【QT开发应用】知识合集

server/2024/9/22 17:29:29/

ListWidget

如何向listwidget控件添加列表项

    QListWidgetItem* pItem1 = new QListWidgetItem(QIcon(":/demo12_listwidget/resources/kits.png"), u8"Kits");QListWidgetItem* pItem2 = new QListWidgetItem(QIcon(":/demo12_listwidget/resources/env.png"), u8"环境");QListWidgetItem* pItem3 = new QListWidgetItem(QIcon(":/demo12_listwidget/resources/editor.png"), u8"编辑器");QListWidgetItem* pItem4 = new QListWidgetItem(QIcon(":/demo12_listwidget/resources/vim.png"), u8"Fakevim");QListWidgetItem* pItem5 = new QListWidgetItem(QIcon(":/demo12_listwidget/resources/help.png"), u8"帮助");ui.listWidget->addItem(pItem1);ui.listWidget->addItem(pItem2);ui.listWidget->addItem(pItem3);ui.listWidget->addItem(pItem4);ui.listWidget->addItem(pItem5);

QListWidgetItem: 每一个QListWidgetItem对象代表一个列表项,可以包含图标和文本。

QListWidgetItem的构造函数:QListWidgetItem使用构造函数初始化第一个参数是QIcon类型表示图片,第二个参数是Item的文本项。
addItem:ui.listWidget->addItem(pItem1);ui控件中addItem方法添加QListWidgetItem对象。

头文件规范

在这里插入图片描述
菜单头文件:#include \<QMenu>
定义右键菜单指针:QMenu* m_pRightMenu = nullptr;
定义函数:函数定义都在头文件中定义。

右键菜单之添加动作

在这里插入图片描述

构建菜单:m_pRightMenu = new QMenu(this);,右键菜单初始化表示我们构建了一个菜单。
向某一个菜单添加动作:m_pRightMenu->addAction(pAc1);,使用addAction方法向某一个菜单添加动作。
菜单动作QAction\* pAc1 = new QAction(u8"动作1", this);,菜单动作用QAction表示,构造函数动作文本和父亲指针。

右键菜单之动作删除当前Item项

获取当前Item项:ui.listWidget->currentItem(),获取当前鼠标位置上的Item项。
删除指定Item项:ui.listWidget->removeItemWidget(item),删除指定的Item项,作用目标是QListWidgetItem对象。

在这里插入图片描述

右键菜单之显示右键菜单

在这里插入图片描述
启动指定菜单m_pRightMenu->exec(QCursor::pos());,在当前位置显示出指定右键菜单。
获取当前鼠标位置:QCursor::pos(),获取当前鼠标位置。
鼠标位置是Item项右键才触发菜单:QListWidgetItem* pItem = ui.listWidget->itemAt(pos);判断当前鼠标位置是否是Item项。

设置菜单策略,绑定右键自定义菜单

在这里插入图片描述

ui.listWidget->setContextMenuPolicy(Qt::CustomContextMenu);
  • 这行代码设置了listWidget的上下文菜单策略。
  • Qt::CustomContextMenu:这个枚举值表示启用自定义上下文菜单。当设置了这个策略时,控件不会显示默认的上下文菜单(当用户右键单击时),而是触发一个信号 customContextMenuRequested。这允许开发者自行定义右键菜单的行为。
connect(ui.listWidget, &QListWidget::customContextMenuRequested, this, &demo12_listwidget::on_PopupRightMenu);
  • connect函数将listWidgetcustomContextMenuRequested信号与demo12_listwidget::on_PopupRightMenu槽函数连接。
    • customContextMenuRequested信号:这是当用户在listWidget上右键单击时发出的信号,并传递鼠标点击的相对位置(QPoint)。
    • on_PopupRightMenu槽函数:自定义函数,用于根据鼠标点击的位置弹出右键菜单(之前代码已实现)。

当用户在listWidget中右键点击时:

  1. customContextMenuRequested信号会被发出。
  2. 信号与on_PopupRightMenu槽函数绑定,槽函数接收鼠标的点击位置,并显示自定义的右键菜单。

结尾

最后,感谢您阅读我的文章,希望这些内容能够对您有所启发和帮助。如果您有任何问题或想要分享您的观点,请随时在评论区留言。
同时,不要忘记订阅我的博客以获取更多有趣的内容。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。
谢谢您的支持,期待与您在下一篇文章中再次相遇!


http://www.ppmy.cn/server/117548.html

相关文章

论文阅读笔记: DINOv2: Learning Robust Visual Features without Supervision

DINOv2: Learning Robust Visual Features without Supervision 论文地址: https://arxiv.org/abs/2304.07193 代码地址: https://github.com/facebookresearch/dinov2 摘要 大量数据上的预训练模型在NLP方面取得突破&#xff0c;为计算机视觉中的类似基础模型开辟了道路。这些…

UE5 阴影通道

Shadow Pass Switch节点中 Default代表模型遮罩的效果 Shadow代表阴影的生成遮罩效果

利士策分享:探索适宜娱乐,实现心灵宁静与成长

利士策分享&#xff1a;探索适宜娱乐&#xff0c;实现心灵宁静与成长 在探讨如何找到并实践适宜的娱乐方式时&#xff0c;我们可以从以下几个方面入手&#xff0c;结合具体建议和方法&#xff0c;让娱乐成为我们生活中的一抹亮色。 一、明确娱乐目的 首先&#xff0c;明确娱…

C++学习笔记(25)

三、循环计数 有两个任务&#xff1a; 1&#xff09;采用一个 while 循环&#xff0c;把 1 到 100 之间的数值累加起来。 2&#xff09;采用一个 for 循环&#xff0c;把用户每次从键盘输入的数值累加起来&#xff0c;如果总和超过了 5000&#xff0c;循环结束。 示例&#xff…

高防IP是如何防御攻击

DDoS攻击作为网络攻击中最常见的一种&#xff0c;一般利用大量的虚假流量向目标服务器发起攻击&#xff0c;进而堵塞网络损耗服务器性能&#xff0c;使服务器呈现崩溃状态&#xff0c;令真正的用户无法正常访问发送请求。以前的大型企业通常都是使用高防服务器来抵抗这类攻击&a…

Mac导入iPhone的照片怎么删除?快速方法讲解

随着Apple生态系统的高度整合&#xff0c;Mac与iPhone之间的照片同步和导入变得异常便捷。但这种便利有时也会带来一些管理上的困扰&#xff0c;比如Mac导入iPhone的照片怎么删除&#xff1f; 从iPhone直接删除照片 Mac导入iPhone的照片怎么删除&#xff1f;如果你的照片是通…

Ajax 使用流程详解

一、Ajax 使用流程 创建一个 HTML 文件&#xff0c;设置页面的基本结构和引入必要的资源。 <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, ini…

【GPU版】Windows下PyTorch入门深度学习环境安装与配置

如果电脑有NVIDIA GPU显卡&#xff0c;看【GPU版本】&#xff1b;否则&#xff0c;看【CPU版本】 聊聊PyTorch和Tensorflow 它们都是python的库/包 pip3是给python3使用的&#xff0c;由于现在用的python基本上都是3以上版本&#xff0c;所以pip和pip3没有区别 聊聊Anacond…