Bonjour bonjour,
Voila je m'autoforme a PyQt, et j'ai quelques questions dont ej n'ai aps vraiment trouvé de réponse claires sur le net.
je voudrais tout simplement faire une ouverture de fichier.
Je défini donc une class mafenetre.
dans cette fenêtre je mets un pushbutton "parcourir" qui lorsqu'il est cliqué, ouvre une nouvelle fenêtre qui est un QFileDialog().
Au niveau du connect j'ai :ouvrirnavig lance donc le QFiledialog.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 QObject.connect(self.parcourir, SIGNAL("clicked()"), self.ouvrirnavig)
sauf que je veux récupérer le chemin du fichier ouvert.
Donc a l'heure actuelle pour ca, je passe par une variable globale, mais ca me plait pas trop...
Et surtout le problème c'est que je voudrais lancer quelque chose derrière ce connect, mais une fois que le fichier est sélectionné.
Donc j'essaye de capter le signal envoyé par QFileDialog : FileSelected.
Sauf que ca marche pas, cette connection est à True meme si je n'ai pas encore clické sur le bouton parcourir...
Mon code dans l'etat actuel (j'ai essayé avec accepted ou FileSelected, ca revient au meme.) :En sorti j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 class maFenetre(QWidget): global chemin_fichier chemin_fichier="" def __init__(self): super(maFenetre,self).__init__() global chemin_fichier chemin_fichier="" self.resize(300,300) self.objet = QFileDialog() txt = QLabel("Bonjour \nSelectionnez la manip a lancer :",self) self.parcourir = QPushButton("Parcourir",self) self.parcourir.move(150,150) self.run() def run(self): test = False QObject.connect(self.parcourir, SIGNAL("clicked()"), self.ouvrirnavig) test = QObject.connect(self.objet, SIGNAL("accepted()"), self.rien) print test def ouvrirnavig(self): global chemin_fichier self.objet.setWindowFlags(Qt.WindowSystemMenuHint) chemin_fichier = str(self.objet.getOpenFileName(QWidget(), QString(), QString("/home/Work/tscope"), QString("*.c"))) print "ouvrir :" + chemin_fichier def rien(self): print "on passe dans rien"
donc le signal accepted est bien capté, mais par contre ca lance pas "rien"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2True ouvrir :blablabla
Donc la question est pourquoi je capte le accepted avant d'avoir choisi mon fichier et comment faire pour que le programme attende ce signal pour continuer ? (autrement que par un while signal pas recu ) :
Au passage si vous voyez des aberrations au niveau de l'utilisation des self, je suis preneur de conseils aussi.
Partager