Python: PyQt QTreeview exemple - sélection
J'utilise Python 2.7 et Qt designer et je suis nouveau sur MVC:
J'ai une vision achevée dans Qt pour me donner un répertoire de l'arborescence de la liste, et le contrôleur en place pour exécuter les choses. Ma question est:
Donné un Qtree vue, comment pourrais-je obtenir un répertoire dir est sélectionné?
Code snap shot est ci-dessous, je soupçonne que c'est le SIGNAL de la(..) même si je n'en suis pas sûr:
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!"
OriginalL'auteur Harry Lime | 2014-06-02
Vous devez vous connecter pour publier un commentaire.
Le signal que vous cherchez est selectionChanged emmited par le selectionModel propriété de votre arbre. Ce signal est emmited avec le sélectionné élément comme premier argument et le désélectionné comme deuxième, les deux sont des instances de QItemSelection.
De sorte que vous pouvez changer la ligne:
à
Aussi je vous recommande d'utiliser le nouveau style pour les signaux et les slots. Redéfinir votre
test
fonction:Ici vous avez un exemple de travail:
PyQt5
Dans PyQt5 est un peu différent (merci à Carel et saldenisov pour les commentaires et les aswer.)
Ainsi, au lieu de l'connu:
maintenant vous écrivez:
Voici un exemple (par saldenisov) à l'aide de PyQt5.
J'ai aussi des problèmes avec PyQt5. Pourriez-vous fournir le code PyQt5 ainsi?
voir ma réponse ci-dessous
OriginalL'auteur Raydel Miranda
Dans PyQt5 il peut être fait de cette façon:
OriginalL'auteur saldenisov
Si je comprends correctement à la question que vous aimeriez le répertoire ou le nom de fichier sélectionné.
C'est ce que je fais:
OriginalL'auteur ngulam
J'ai essayé cette solution de rechange pour obtenir le nom de fichier...
Au lieu de:
J'ai essayé:
Qui semble également fonctionner...
OriginalL'auteur Martin Alexandersson