Terminal Ein-/Ausgabe mit QTextEdit

Alles rund um die Programmierung mit Qt
Antworten
CFauck
Beiträge: 1
Registriert: 30. Oktober 2005 22:14
Kontaktdaten:

Terminal Ein-/Ausgabe mit QTextEdit

Beitrag von CFauck »

Hi.

Ich bin gerade dabei, ein Terminalprogramm für das Debuggen von uCs über UART zu schreiben, welches die Features der meisten am Markt existierenden Programme vereint.

Nun bin ich auf das Problem der Ein-/Ausgaben gestoßen. Ich möchte dafür ein QTextEdit Widget einsetzen und habe die Key-Events bereits mit einem Filter abgefangen (s.u.)

Mein Problem: Wie bekomme ich die gedrückte Taste von dem Eventhandler in meine Applikation hinüber?

Filterdeklaration:

Code: Alles auswählen

#include <qobject.h>
#include <qevent.h>

class HandleEvents : public QObject
{

	//Q_OBJECT	// Occurs errors like: undefined reference to `vtable for HandleEvents'

protected:
	bool eventFilter(QObject *pqo_Object, QEvent *pqe_Event);
};
Filterimplementation:

Code: Alles auswählen

bool HandleEvents::eventFilter(QObject *pqo_Object, QEvent *pqe_Event)
{
	if ( pqe_Event->type() == QEvent::KeyPress )
	{
		// Special processing for key press
		QKeyEvent *pqe_QKeyEvent = (QKeyEvent *)pqe_Event;
		
		qDebug( "Key: %x", pqe_QKeyEvent->key() );
		
//		emit testsignal(); // Doesn't work since I can't connect from main class
	}
	
	// Only key events allowed
	return TRUE;
}
Verwendung:

Code: Alles auswählen

	// Generate own defined event handler
	pcl_HandleEvents = new HandleEvents;

	// Install event filter
	ps_SingleTerminalCurrent->pcl_SingleTerminalGui->
		TE_Terminal->installEventFilter(pcl_HandleEvents);
	// Zeiger auf ein Element einer verketteten Liste ->Zeiger auf ein von mir erstelltes
	// Widget, welches ein komplettes Terminal enthält -> Zeiger auf ein QTextEdit 
	// Widget (TE_Terminal)

	// Auf dieser Ebene benötige ich die Taste in einer anderen Methode.

Vielen Dank für eure Unterstützung und Gruß,
Christoph Fauck
Antworten