Seite 4 von 4

Re: Scallierung von QtWidgets

Verfasst: Montag 3. Juli 2017, 10:32
von __deets__
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.

Re: Scallierung von QtWidgets

Verfasst: Montag 3. Juli 2017, 12:02
von Nobuddy
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 ...

Re: Scallierung von QtWidgets

Verfasst: Montag 3. Juli 2017, 13:59
von Nobuddy
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)

Re: Scallierung von QtWidgets

Verfasst: Dienstag 4. Juli 2017, 16:34
von Nobuddy
Ist die Klasse "MyEventFilter", so richtig?