qmessageBox violation du droit d'acces (pyqt4)

Le problème exposé dans ce sujet a été résolu.

Prends en compte aussi qu’en principe les composants d’interface (message box, label, text box, etc.) ne doivent pas être copiés/transférés, et sont censé n’être manipulés que par un seul thread connu du système, thread qui doit toujours être le même (GUI thread). Les mutex ne sont pas forcément suffisants. Manipuler les composants depuis plusieurs threads t’expose inévitablement à ce genre de bugs… un coup ça passe, un coup ça casse.

Si tu as besoin des données de l’interface dans d’autres threads, tu dois utiliser un système de passation de messages. Je ne connais pas toute l’étendue de QT, il y a sûrement quelque chose de prévu pour ça.

Essaie au maximum de ne passer que des types simples dans tes messages; même une liste, potentiellement mutable, est suceptible de poser problème. Récupère bien sûr les valeurs des composants plutôt que les composants eux-mêmes et utilise un sérialisateur si nécessaire pour passer des objets complexes (p.ex. pyckle)

+1 -0

Mais je me suis arranger pour ne pas passer le même objet dans mes deux threads je ne comprends pas pourquoi il y a toujours cette erreur.

Je crées un QprogressBar dans mon objet interface et je passe ce QprogressBar a mon objet LoadData. Mais je m’arrange a ne plus manipuler le QprogressBar dans mon interface. Il est ainsi de même pour un autre QLabel.

Est ce que cela peut créer des erreurs. Merci pour tous vos réponses je galère sur ce problème depuis un moment je crois que c’était due a sqlite3 j’ai fait certaines modifications pour permettre a un seul objet d’accéder a la base de données mais je reçois toujours cette erreur de segmentation.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte