欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > 【零】【QT开发应用】知识合集

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

2025/2/24 6:37:41 来源:https://blog.csdn.net/m0_74163972/article/details/142261667  浏览:    关键词:【零】【QT开发应用】知识合集

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槽函数绑定,槽函数接收鼠标的点击位置,并显示自定义的右键菜单。

结尾

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词