一、效果预览
![在这里插入图片描述](https://img-blog.csdnimg.cn/63cc3a8a98ac43bcb0c1280869caa5b2.png)
二、代码
cpp文件
void MainWindow::Rightclicklistview()
{
TotalRightclick =new QMenu(this);
AddDevice = new QMenu(this);
upDevice = new QAction(this);
DownDevice = new QAction(this);
Delete = new QAction(this);
EditDevice = new QAction(this);
DeviceIS6201A =new QMenu(this);
DeviceIS6202A = new QMenu(this);
DeviceIS6203A = new QMenu(this);
DeviceIS6201A_IIC = new QAction(this);
DeviceIS6201A_PMBV1 = new QAction(this);
DeviceIS6201A_PMBV2= new QAction(this);
QIcon iconadd = QIcon(":/Res/tools/add.png");
QIcon iconUp = QIcon(":/Res/tools/moveup.png");
QIcon iconDown = QIcon(":/Res/tools/movedown.png");
QIcon iconDelete = QIcon(":/Res/tools/delete.png");
QIcon iconEdit = QIcon(":/Res/tools/paste.png");
QIcon iconUser = QIcon(":/Res/tools/user.png");
QIcon iconChip = QIcon(":/Res/tools/xinpian.png");
AddDevice = TotalRightclick->addMenu(iconadd," Add Device");
upDevice = TotalRightclick->addAction(iconUp," Move Up Device");
DownDevice = TotalRightclick->addAction(iconDown," Move Down Device");
Delete = TotalRightclick->addAction(iconDelete," Delete Device");
EditDevice = TotalRightclick->addAction(iconEdit," Edit Device");
DeviceIS6201A = AddDevice->addMenu(iconUser," IS6201A");
DeviceIS6202A = AddDevice->addMenu(iconUser," IS6202A");
DeviceIS6203A = AddDevice->addMenu(iconUser," IS6203A");
DeviceIS6201A_IIC = DeviceIS6201A->addAction(iconChip, " IS6201A_IIC");
DeviceIS6201A_PMBV1 = DeviceIS6201A->addAction(iconChip," IS6201A_PMBV1");
DeviceIS6201A_PMBV2= DeviceIS6201A->addAction(iconChip, " IS6201A_PMBV2");
connect( upDevice, &QAction::triggered, [=]()
{
qDebug()<<"I'm upDevice";
});
connect( DownDevice, &QAction::triggered, [=]()
{
qDebug()<<"I'm DownDevice";
});
connect( Delete, &QAction::triggered, [=]()
{
}
qDebug()<<"I'm DeleteAction";
});
connect( EditDevice, &QAction::triggered, [=]()
{
qDebug()<<"I'm btnSecondAction";
});
connect( DeviceIS6201A_PMBV1, &QAction::triggered, [=]()
{
qDebug()<<"I'm DeviceIS6201A_PMBV1";
});
connect( DeviceIS6201A_PMBV2, &QAction::triggered, [=]()
{
qDebug()<<"I'm DeviceIS6201A_PMBV2";
});
ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->listView,&QLabel::customContextMenuRequested,[=](const QPoint &pos)
{
qDebug()<<pos;
TotalRightclick->exec(QCursor::pos());
});
}
h文件
private:
void Rightclicklistview();
QAction * upDevice;
QAction * DownDevice;
QAction * Delete;
QAction * EditDevice;
QAction * DeviceIS6201A_IIC;
QAction * DeviceIS6201A_PMBV1;
QAction * DeviceIS6201A_PMBV2;
QMenu * TotalRightclick;
QMenu * AddDevice;
QMenu * DeviceIS6201A;
QMenu * DeviceIS6202A;
QMenu * DeviceIS6203A;
参考二
参考三