QPopupMenu, wenn rechte Maustaste und ListViewItem gewählt
Verfasst: 7. April 2005 12:16
Hallo Leute,
ich hoffe, das nervt nicht, aber es ist nicht so, dass ich erst frage und es dann selbst versuche, sondern wirklich nur, wenn ich nichts gefunden habe, was mir weiterhilft.
Folgendes Problem:
Ich möchte, nachdem ich nun Einträge in meine ListViews gemacht habe, diese Einträge mit der rechten Maustaste anwählen, worauf ein PopupMenu erscheint. Dieses soll je nach Vollständigkeit der ListViewItems (wieviel Untereinträge) diverse Funktionen darüber aufrufbar machen. Ich habe es auch hinbekommen, einfache Popups mit rechter Maustaste zu kreieren, leider erscheinen diese aber nur, wenn ich oben auf die Menuleiste rechts klicke, nicht aber irgendwo im Fenster, was ja der erste Schritt dazu wäre, dass über die ListViewItems über eine if-Anweisung mit currentItem!=0 abzufragen oder so. Hier der Code, der für die Menu-Leiste geht:
Habe mal irgendetwas über EventFilter gehört, aber peile diese Dinger überhaupt nicht bzw. die bewirken doch eher, dass ich sagen kann, reagiere DU jetzt NICHT auf dieses Event, aber ich kann nciht sagen, ListView reagiere DU aber JETZT AUCH darauf, oder?
ich hoffe, das nervt nicht, aber es ist nicht so, dass ich erst frage und es dann selbst versuche, sondern wirklich nur, wenn ich nichts gefunden habe, was mir weiterhilft.
Folgendes Problem:
Ich möchte, nachdem ich nun Einträge in meine ListViews gemacht habe, diese Einträge mit der rechten Maustaste anwählen, worauf ein PopupMenu erscheint. Dieses soll je nach Vollständigkeit der ListViewItems (wieviel Untereinträge) diverse Funktionen darüber aufrufbar machen. Ich habe es auch hinbekommen, einfache Popups mit rechter Maustaste zu kreieren, leider erscheinen diese aber nur, wenn ich oben auf die Menuleiste rechts klicke, nicht aber irgendwo im Fenster, was ja der erste Schritt dazu wäre, dass über die ListViewItems über eine if-Anweisung mit currentItem!=0 abzufragen oder so. Hier der Code, der für die Menu-Leiste geht:
Code: Alles auswählen
void KonfiguratorMainWindowImpl::mouseReleaseEvent(QMouseEvent *event)
{
if (event->button() == RightButton)
{
QPopupMenu *contextMenu = new QPopupMenu(this);
Q_CHECK_PTR( contextMenu );
contextMenu->insertItem("Add Identifier", this, SLOT(slot_newEntry()), tr("Ctrl+E"));
contextMenu->exec(event->globalPos());
delete contextMenu;
}
}