QTableView: keyPressEvent nutzen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
ForestFunk
User
Beiträge: 5
Registriert: Donnerstag 29. September 2011, 12:47

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
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()".
Antworten