Event an Kind-Widget weiterleiten?

Alles rund um die Programmierung mit Qt
Antworten
Illuminatus
Beiträge: 84
Registriert: 3. Dezember 2008 12:48

Event an Kind-Widget weiterleiten?

Beitrag von Illuminatus »

hi ich hab eine oberfläche und ein QGLWidget als Kind. Ich hab nun den void keyPressEvent( QKeyEvent * ); in der OGL Klasse überschrieben und neu implementiert. Allerdings wird die Methode nie aufgerufen! Ich habe mich mal im Assistent umgesehen, und hab gelesen dass ich mit event::setAccepted(true) sozusagen das Kind als Empfänger bestätigen muss. Wie mach ich dass, dass nur gewisse Keys an das Kind (OGL Fenster) geleitet werden udn nciht alle?

Code: Alles auswählen

void opengldrawer::keyPressEvent(QKeyEvent *ereignis)
{
    qDebug() << "keypressevent erkannt";
	int taste = ereignis->key();
	switch(taste)
	{
		//links
	case 16777234:
                qDebug() << "<-";
                glTranslatef(2,0,0);
                updateGL();
		break;
		//hoch
	case 16777235:
                glTranslatef(0,0,2);
                updateGL();
		break;
		//rechts
	case 16777236:
                glTranslatef(-2,0,0);
                updateGL();
		break;
		//runter
	case 16777237:
                glTranslatef(0,0,-2);

		break;
	}

}
Wisst ihr warum die Methode nie aufgerufen wird?
heizer_2
Beiträge: 7
Registriert: 15. September 2008 19:51

Beitrag von heizer_2 »

Hallo, dein Widget hat evtl. den Eingabefocus nicht um Key-Events zu empfangen...

Doku sagt:
"A widget must call setFocusPolicy() to accept focus initially and have focus in order to receive a key press event."

hab auch lange gesucht...
Antworten