我已将一个小部件作为标签(图像或图标)添加到QT主窗口。我需要在标签上单击(向左或向右)后显示一个弹出菜单。请帮助
答案 0 :(得分:2)
重新实施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