以 QlistWidget 为例, 通过
if(ui->listWidget->itemAt(pos) != nullptr)
进行判断 ,下面是具体代码
// 列表添加鼠标右键事件
ui->listWidget->setContextMenuPolicy(Qt::CustomContextMenu); // 用户自定义菜单 模式
connect(ui->listWidget,&QListWidget::customContextMenuRequested,this,&MainWindow::on_customContextMenuRequested); // 鼠标右键, 弹出菜单
void MainWindow::on_customContextMenuRequested(const QPoint &pos)
{
QMenu *menu = new QMenu(ui->listWidget);
if(ui->listWidget->itemAt(pos) != nullptr)
{
// 控件上点击
}
else
{
// 空白区域点击
}
menu->exec(QCursor::pos());
delete menu;//执行完毕删除菜单
}