Qt笔记---QMenu添加自定义菜单
QMenu用于显示菜单栏交互,使用QAction作为选项添加,生成的菜单栏为默认样式。
默认样式:
想要在菜单栏上显示一些其他的部件组成的选项,可以使用QMenu+QWidgetAction的方式直接显示自定义的widget
代码:
// 这里我使用的是QTableWidget的右键菜单
// 启用QTableWidget的右键菜单功能
m_deviceTableWgt->setContextMenuPolicy(Qt::CustomContextMenu);
// 连接右键的信号槽
connect(m_deviceTableWgt, &QTableWidget::customContextMenuRequested, this, &MainWgt::onTableWidgetMenuPop);
// 槽函数
void MainWgt::onTableWidgetMenuPop(const QPoint &point)
{
// 创建自定义widget
CustomerWgt *wgt = new CustomerWgt();
// 创建菜单QMenu
QMenu *tableWidgetMenu = new QMenu(m_deviceTableWgt);
// 创建QWidgetAction
QWidgetAction *action = new QWidgetAction(m_tableWidgetMenu);
// 绑定自定义widget
action->setDefaultWidget(wgt );
// 添加到菜单
m_tableWidgetMenu->addAction(action);
// 显示到鼠标位置
tableWidgetMenu ->exec(QCursor::pos());
}
效果如下:
记录一下,方便以后查找