QListWidget und QMouseEvent

Alles rund um die Programmierung mit Qt
Antworten
Linuxguru
Beiträge: 96
Registriert: 14. Januar 2007 02:09

QListWidget und QMouseEvent

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:

Code: Alles auswählen

void contextMenuEvent ( QContextMenuEvent * e )
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;
}
Antworten