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
函数将listWidget
的customContextMenuRequested
信号与demo12_listwidget::on_PopupRightMenu
槽函数连接。customContextMenuRequested
信号:这是当用户在listWidget
上右键单击时发出的信号,并传递鼠标点击的相对位置(QPoint
)。on_PopupRightMenu
槽函数:自定义函数,用于根据鼠标点击的位置弹出右键菜单(之前代码已实现)。
当用户在listWidget
中右键点击时:
customContextMenuRequested
信号会被发出。- 信号与
on_PopupRightMenu
槽函数绑定,槽函数接收鼠标的点击位置,并显示自定义的右键菜单。
结尾
最后,感谢您阅读我的文章,希望这些内容能够对您有所启发和帮助。如果您有任何问题或想要分享您的观点,请随时在评论区留言。
同时,不要忘记订阅我的博客以获取更多有趣的内容。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。
谢谢您的支持,期待与您在下一篇文章中再次相遇!