Qt 设置QTableWidget,QListWidget,QTreeWidget鼠标右键
前言
今天看书看到,QListWidget 的鼠标右键方法(customContextMenuRequested),但是写好鼠标右键的槽函数后依然不能用,结果是信号没触发。加上下面一句就对了。
ui->listWidget->setContextMenuPolicy(Qt::CustomContextMenu);
具体实现
ui->listWidget->setContextMenuPolicy(Qt::CustomContextMenu);
void MainWindow::on_listWidget_customContextMenuRequested(const QPoint &pos)
{
Q_UNUSED(pos);
QMenu *menuList = new QMenu(this);
QAction *add = new QAction(QStringLiteral("添加"), this);
QAction *del = new QAction(QStringLiteral("删除"), this);
QAction *modify = new QAction(QStringLiteral("修改"), this);
connect(add, SIGNAL(triggered()), this, SLOT(addClicked()));
menuList->addAction(add);
menuList->addAction(del);
menuList->addAction(modify);
menuList->exec(QCursor::pos());
// delete menuList;
}
void MainWindow::addClicked()
{
QMessageBox::about(this, QStringLiteral("提示消息"), QStringLiteral("你点了 add"));
}
效果
鼠标右键不能截图。。。
