Alles rund um die Programmierung mit Qt
-
Linuxguru
- Beiträge: 96
- Registriert: 14. Januar 2007 02:09
Beitrag
von Linuxguru »
hallo,
ich hab ein QListWidget erstellt, in diesen möchte ich per rechtsklick ein popupmenü erzeugen.
dazu hab ich eine funktion geschrieben, die das MouseEvent aufruft. allerdings reagiert das nur auf mein QWidget und nicht auf das QListWidget
Code: Alles auswählen
void MyWidget::mousePressEvent(QMouseEvent *e);
{
if ( e->button() == Qt::RightButton )
{
QMessageBox::information(this, tr("mousebutton"), tr("rechter button gedrückt"));
e->accept();
}
else
e->ignore();
}
hat jemand eine idee, wie ich das ganze auf das QListWidget übertragen kann???
-
upsala
- Beiträge: 3946
- Registriert: 5. Februar 2006 20:52
- Wohnort: Landshut
-
Kontaktdaten:
Beitrag
von upsala »
Welches QListWidget? Ist MyWidget nicht davon abgeleitet? Außerdem gibts für 'Rechtsklicks' das hier:
-
Linuxguru
- Beiträge: 96
- Registriert: 14. Januar 2007 02:09
Beitrag
von Linuxguru »
hallo @upsala,
danke für deine hilfe. das contextmenu kannte ich bis dato nicht. hat mir sehr weiter geholfen.
hier noch meine lösung wenn es jemanden interessiert
Code: Alles auswählen
void MyWidget::contextMenuEvent ( QContextMenuEvent * e )
{
QListWidgetItem *CurrentItem = fileList->currentItem();
if ( ! CurrentItem )
return;
QAction *action;
QMenu *popMenu = new QMenu(this);
action = popMenu->addAction("test1");
connect( action, SIGNAL(triggered()), this, SLOT(testFunktion()) );
action = popMenu->addAction("test2");
connect( action, SIGNAL(triggered()), this, SLOT(testFunktion2()) );
popMenu->exec(QCursor::pos());
delete popMenu;
}