Seite 1 von 1

QTableView: keyPressEvent nutzen

Verfasst: Donnerstag 29. September 2011, 13:49
von ForestFunk
Hi zusammen,

ich versuche gerade den Keypress-Event des QTableView-Objekts abzufangen, doch nur mit mäßigem Erfolg. Ansatz ist das Überschreiben des entsprechenden Events.


Arbeitsumgebung:

OS: Ubuntu 11.04
Python: 2.7
PyQt / Qt: 4.8.3


Konkret geht es um eine Tabelle mit 4 Einträgen (Index 0 - 3), jedoch erhalte ich nur einen Keypress-Event, wenn ich mich bei Index 0 (niedrigster Wert) oder Index 3 (höchster Wert) befinde und die Pfeiltaste Richtung Begrenzung drücke.

Code: Alles auswählen

	
	# Keypress QTableView überschreiben
	#
	def keyPressEvent (self, event):
		
		# Key-Code ermitteln
		eventKey = event.key()
		# Anzahl gedrückter Keys
		eventKeyCount = event.count()
		
		qDebug("Event" + str(eventKey))
		
		# Enter: Edit
		if (eventKey == Qt.Key_Return):
			...
		# Escape: Quit
		elif (eventKey == Qt.Key_Escape):
			...
		# Pfeiltaste runter / hoch: Zoom
		elif (eventKey == Qt.Key_Up or eventKey == Qt.Key_Down):
			...
		return
Kennt jemand das Problem? Von der Funktion möchte ich erreichen, dass bei der Navigation per Pfeiltasten durch die TableView die aktuell markierte Zeile in QLineEdit's auf der Oberfläche geladen wird.


Grüße,

ForestFunk

Re: QTableView: keyPressEvent nutzen

Verfasst: Donnerstag 29. September 2011, 14:19
von lunar
@ForestFunk: Bitte ein vollständiges, minimales Beispiel, welches erlaubt, das Problem zu reproduzieren. Ansonsten können wir nur raten.

Falls es nur darum geht, bestimmte Teile der Oberfläche zu aktualisieren, wenn der aktuell ausgewählte Eintrag sich ändern, dann überschreibe lieber "currentChanged()".