Контекстное меню QT не выровнено по курсору - PullRequest
1 голос
/ 14 апреля 2019

Когда я щелкаю правой кнопкой мыши, появляется контекстное меню, но оно не выравнивается с курсором.Я хочу, чтобы угол контекстного меню отображался там, где находится курсор.Здесь вы можете видеть, что это довольно далеко вправо:

enter image description here

Вот метод, где отображается контекстное меню:

void MainWindow::on_listWidget_customContextMenuRequested(const QPoint &pos)
{

    QMenu menu("contextMenu", this);
    QAction deleteItem("Delete", this);
    menu.addAction(&deleteItem);
    connect(&deleteItem, SIGNAL(triggered()), this, SLOT(deleteItem()));
    menu.exec(mapToGlobal(pos)); 

}

Спасибо за помощь!

1 Ответ

1 голос
/ 14 апреля 2019

Переменная pos относится к viewport() QListWidget, поэтому вы должны использовать метод mapToGlobal() QListWidget:

menu.exec(ui->listWidget->viewport()->mapToGlobal(pos));
...