Hallo Nobuddy,
ich muss gestehen ich weiss da nicht mehr so recht weiter. Du hast irgendwelche Dinge getan, aber das ist doch ganz schoen weit entfernt von dem, was ich angemerkt habe. Und mich beschleicht das Gefuehl, dass du gar nicht nachvollziehst, was ich meine. Wenn ich davon rede, dass "dein Filter gehört nur von Qobject abgelitten. Und besser benannt. Es ist ein Filter. Kein view.", dann bezieht sich das auf deine Klasse "MyTreeView", die von QTreeView ableitet. Aber stattdessen 'MyEventFilter' heissen sollte, und von QObject ableiten. Weil sie kein View ist, sondern ein Filter, und darum weder die Funktionalitaet noch den Namen braucht. Etc.
Wenn man so sehr aneinander vorbeiredet hat das glaube ich nicht wirklich Sinn, das weiter zu fuehren.
Scallierung von QtWidgets
Schade ..., ein einfaches Beispiel hätte genügt, dann hätte ich auch verstanden, was Du mir mit Deinem Geschriebenem sagen willst.
Dazu musst Du noch nicht mal den Code neu schreiben. Copy & Paste, die von Dir beschriebenen Stellen editiert und fertig.
Ich habe schon zigmal Deine Links verfolgt, leider habe ich das Problem, kein Englisch zu beherrschen. Mit dem Google-Übersetzer ist es oft schwierig sinngemäss, das eigentliche zu verstehen. Bitte komm mir jetzt nicht mit "dann lerne erst mal E...", dazu fehlt mir einfach die Sprachbegabung und mein Alter ...
Dazu musst Du noch nicht mal den Code neu schreiben. Copy & Paste, die von Dir beschriebenen Stellen editiert und fertig.
Ich habe schon zigmal Deine Links verfolgt, leider habe ich das Problem, kein Englisch zu beherrschen. Mit dem Google-Übersetzer ist es oft schwierig sinngemäss, das eigentliche zu verstehen. Bitte komm mir jetzt nicht mit "dann lerne erst mal E...", dazu fehlt mir einfach die Sprachbegabung und mein Alter ...
Nochmal ein Versuch.
Code: Alles auswählen
class MyEventFilter(QObject):
enterPressed = pyqtSignal()
def __init__(self):
QObject.__init__(self)
def keyPressEvent(self, event): #QKeyEvent
if event.key() == Qt.Key_Enter or event.key() == Qt.Key_Return:
self.enterPressed.emit()
print('enter key pressed')
class MyWindow(QWidget):
def __init__(self, dataList, header, *args):
QWidget.__init__(self, *args)
# setGeometry(x_pos, y_pos, width, height)
self.setGeometry(70, 150, 420, 250)
self.setWindowTitle("Click on the header to sort table")
self.filter = MyEventFilter()
self.installEventFilter(self.filter)
self.table_model = MyTableModel(self, dataList, header)
table_view = QTableView()
# bind cell click to a method reference
table_view.pressed.connect(self.showSelection)
table_view.setModel(self.table_model)
# enable sorting
table_view.setSortingEnabled(True)
layout = QVBoxLayout(self)
layout.addWidget(table_view)
self.setLayout(layout)
def showSelection(self, item):
cellContent = item.data()
sf = "You clicked on {}".format(cellContent)
# display in title bar for convenience
self.setWindowTitle(sf)