Seite 1 von 1

QListWidget und QMouseEvent

Verfasst: 16. Juni 2007 00:01
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???

Verfasst: 16. Juni 2007 08:14
von upsala
Welches QListWidget? Ist MyWidget nicht davon abgeleitet? Außerdem gibts für 'Rechtsklicks' das hier:

Code: Alles auswählen

void contextMenuEvent ( QContextMenuEvent * e )

Verfasst: 16. Juni 2007 15:19
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;
}