IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

Changements de texte d'un QLineEdit dans un thread


Sujet :

PyQt Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 9
    Points
    9
    Par défaut Changements de texte d'un QLineEdit dans un thread
    Bonjour à tous,

    Je me permets de poster suite à un souci que je rencontre actuellement.
    J'explique la situation...
    J'ai une fenêtre qui hérite de QMainWindow, que je lance. Cette fenêtre contient entre autre un bouton et un QLineEdit.
    Au clic sur ce bouton, je crée une instance de Execution, qui hérite de QThread. J'appelle le run avec un start(). Dans cette méthode run, j'effectue un parcours récursif qui peut être très long, et, pour chaque fichier parcouru, je modifie le texte du QLineEdit de la fenêtre avec le nom de ce fichier. A priori, rien de trop méchant.
    Mais j'obtiens un plantage systématique (python.exe a cessé de fonctionner, windows recherche une solution au problème), mais pas toujours au même moment (12, 13è fichier parcouru environ). Si je pars d'un autre répertoire de départ, le problème est le même, plantage entre 10 et 15 fichiers parcourus.

    Pour information, après avoir repéré les fichiers qui provoquaient le plantage, j'ai tenté d'effectuer le setText en dur avec ces noms, et aucun plantage.

    D'où mes doutes :
    Le plantage étant systématique, mais pas toujours au même moment, j'ai peur qu'il s'agisse d'une instabilité de python (sans vouloir y croire).
    Ou bien je pencherais plus vers un problème de thread. L'affectation du texte du QLineEdit se faisant dans un autre processus que celui de la fenêtre même, n'y a-t-il pas un conflit ? Une tentative de réécriture alors qu'une écriture précédente n'est pas achevée ?
    Je suis preneur de toute piste ou idée...
    Merci d'avance...

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    La cause des plantages est facile à trouver: on ne doit pas toucher directement au graphique dans un thread! Il faut pratiquer par échange de messages (emit, connect, ...), et c'est toujours la partie principale du programme qui fait le boulot graphique.

    Dans ton cas: quand le thread doit mettre à jour une info dans un widget, il le demande à la fenêtre graphique (emit) avec l'info. La fenêtre graphique reçoit le message (connect) et fait la mise à jour du widget. Et ça marche très bien comme ça!

    Comme source d'inspiration, tu peux voir ici: http://pyqt.developpez.com/tutoriels...rger-fichiers/.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Très bien, je vais modifier le fonctionnement de mon système alors...
    Merci beaucoup pour ta réponse!

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/10/2007, 09h49
  2. changement du texte dans le JButton
    Par nightwar dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 16/06/2007, 10h34
  3. Réponses: 4
    Dernier message: 30/10/2006, 00h53
  4. changement de texte dans un champs static
    Par nbegorre dans le forum MFC
    Réponses: 3
    Dernier message: 29/06/2006, 23h33
  5. [MFC] changement de texte dans un bouton
    Par benjiprog dans le forum MFC
    Réponses: 16
    Dernier message: 12/06/2006, 20h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo