Всплывающее меню в QT - PullRequest
       1

Всплывающее меню в QT

0 голосов
/ 24 января 2011

Я добавил виджет как ярлык (изображение или значок) в главное окно QT. Мне нужно отобразить всплывающее меню после того, как я нажму (щелчок левой или правой кнопкой мыши) на ярлыке. Помогите, пожалуйста

1 Ответ

2 голосов
/ 24 января 2011

переопределение mousePressEvent

void YourWidget::mousePressEvent(QMouseEvent *event)
{
    QMenu menu(this);
    QAction *action = menu.addAction("action");
    if (menu.exec(event->pos()) == action) {
        QMessageBox::information(this, "Next time I promise to google for the answers before asking");
    }
}

вы также можете использовать фильтры событий для обработки событий щелчка мыши из виджетов, из которых вы не производны, т.е. если у вас есть q plain QLabel и вы хотите добавитьконтекстное меню к нему.Читайте в ассистенте о QObject::installEventFilter

...