Seite 1 von 1

QTabWidget und Kontextmenu

Verfasst: 1. März 2011 09:58
von whit3
mein header

Code: Alles auswählen

class QTabWiget : QTabWidget
{
	Q_OBJECT
	public :
	 void contextMenuEvent ( QContextMenuEvent * e )
			{
				QMessageBox::information( this, "Test",
				"testtesttest");

			}			
};

class ApplicationWindow: public QMainWindow
{
    Q_OBJECT
public:
    ApplicationWindow();
    ~ApplicationWindow();	
	QTabWidget *tabWidget;  		
};

Warum kommt jetzt nicht die Testmeldung, wenn ich auf meinen Tab rechtsklick mache...?!
Das Ziel soll ein Texteditor mit mehreren Tabs sein.

Verfasst: 1. März 2011 12:30
von upsala
QTabWidget hat eine QTabBar für die man events abfangen müßte.

Verfasst: 1. März 2011 12:47
von whit3
upsala hat geschrieben:QTabWidget hat eine QTabBar für die man events abfangen müßte.
könntest du mir ein klitzekleines codesnippet geben :oops:

Das ist mega nett :)

Verfasst: 1. März 2011 13:23
von franzf
Also...
Dass das

Code: Alles auswählen

class QTabWiget : QTabWidget 
gut geht, liegt nur an einem Schreibfehler... Bitte eigene Klassen nicht im Stile QMeineKlasse benennen. Nimm einen eigenen Prefix oder - noch besser - statt Prefix nimm namespaces!

Das contextMenuEvent ist wie (fast) alle Event-Funktionen protected, also kein Grund es public zu setzen. Durch das virtual könntest du es sogar private machen, es bleibt trotzdem noch erreichbar.

Und Events abfangen geht mit dem eventFilter. In der Doku danach suchen, da gibt es ein schönes, leicht verständliches Beispiel.

Grüße
Franz

Verfasst: 1. März 2011 13:41
von whit3
danke erstmal werde ich mir anschauen !
hab wohl alles falsch gemacht ^^