Python: PyQt und QTreeview Beispiel - Auswahl
Ich bin mit Python 2.7 und Qt-designer und ich bin neu in der MVC:
Ich habe eine View komplett innerhalb von Qt, um mir einen Verzeichnisbaum, Liste, und die Steuerung in den Ort, um die Dinge laufen. Meine Frage ist:
Gegeben ein Qtree Ansicht, wie erhalte ich ein Verzeichnis einmal dir aktiviert ist?
Code snap shot ist unten, ich vermute, es ist SIGNAL(..) obwohl, ich bin mir nicht sicher:
class Main(QtGui.QMainWindow):
plot = pyqtSignal()
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
# create model
model = QtGui.QFileSystemModel()
model.setRootPath( QtCore.QDir.currentPath() )
# set the model
self.ui.treeView.setModel(model)
**QtCore.QObject.connect(self.ui.treeView, QtCore.SIGNAL('clicked()'), self.test)**
def test(self):
print "hello!"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das signal, das Sie suchen, ist selectionChanged emmited durch die selectionModel Besitz von Ihrem Baum. Dieses signal ist emmited mit der ausgewählt Element als erstes argument und die deaktiviert als zweite, beide sind Instanzen von QItemSelection.
So möchten Sie vielleicht ändern Sie die Zeile:
zu
Außerdem empfehle ich Ihnen, die neuer Stil für Signale und slots. Definieren Sie Ihre
test
Funktion als:Hier haben Sie ein funktionierendes Beispiel:
PyQt5
In PyQt5 ist ein bisschen anders (danke an Carel und saldenisov für Kommentare und aswer.)
Statt also die bekannten:
nun schreiben Sie:
Hier ist ein Beispiel (von saldenisov) mit PyQt5.
In PyQt5 es getan werden kann in dieser Weise:
Wenn ich die Frage verstehen Sie richtig wäre, wie der Verzeichnis-oder Dateinamen ausgewählt.
Dies ist, was ich Tue:
Habe ich versucht, diese alternative zu sein, um den Namen der Datei...
Statt:
Habe ich versucht:
Welche auch zu funktionieren scheint...