A voir également:
- [QtCreator] Plante sur les longs calculs...
- Plante - Guide
- Comment calculer la moyenne sur excel - Guide
- Mon telephone plante que faire - Guide
- Cette plante encore peu connue fleurit toute l'année - Et elle est magnifique ! - Guide
- Explorateur windows plante - Guide
7 réponses
Je pense que c'est juste un problème de rafraîchissement de la fenêtre, tous le processus est utilisé pour le traitement d'image, et "oublie" le MainWindow alors que Windows s'attends à avoir régulièrement des "nouvelles" de chacune de ses fenêtres.
Même si la fenêtre "ne réponds pas", laisse le programme se dérouler jusqu'à la fin (regarde les performances dans le gestionnaire des tâches), une fois le traitement terminé la fenêtre devrait revenir.
Une petite astuce pourrait-être de faire une barre de progression qui, modifiée régulièrement, permettrait d'indiquer à Windows que la fenêtre est toujours utilisée.
Même si la fenêtre "ne réponds pas", laisse le programme se dérouler jusqu'à la fin (regarde les performances dans le gestionnaire des tâches), une fois le traitement terminé la fenêtre devrait revenir.
Une petite astuce pourrait-être de faire une barre de progression qui, modifiée régulièrement, permettrait d'indiquer à Windows que la fenêtre est toujours utilisée.
Salut
places quelques QCoreApplication::processEvents(); le long des traitements, ça devrait empecher le "ne répond pas"
places quelques QCoreApplication::processEvents(); le long des traitements, ça devrait empecher le "ne répond pas"
Quand tu dis que ça plante, tu veux dire que la fenêtre se fige et que Windows indique que le programme ne répond pas ?
Si c'est ça, ça ne veut pas forcément dire que ton programme plante, juste qu'il oublie de se manifester auprès du système...
Si c'est ça, ça ne veut pas forcément dire que ton programme plante, juste qu'il oublie de se manifester auprès du système...
Merci d'avoir répondu,
Quand ca plante en gros y a la fenetre MainWindow ( mon programme ) qui est innaccessible ("ne réponds pas" si je clic dessu) mais Qt marche toujours.
Dans mon programme je peux saisir a la zone d'image a traité, et des qu'elle devient trop grande c'est foutu le programme plante.
Et si il oubli de se manifester comme tu le dis sous window, comment je peux corriger le tir?
Quand ca plante en gros y a la fenetre MainWindow ( mon programme ) qui est innaccessible ("ne réponds pas" si je clic dessu) mais Qt marche toujours.
Dans mon programme je peux saisir a la zone d'image a traité, et des qu'elle devient trop grande c'est foutu le programme plante.
Et si il oubli de se manifester comme tu le dis sous window, comment je peux corriger le tir?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok donc je vais tester de faire "forcer" un rafraichissement d'image pour tester ton idée.
Merci, je tiens au courant...
Merci, je tiens au courant...
Salut.
Ton programme ne plante pas forcément s'il ne répond plus, c'est peut être que le calcul est trop long. En effet dans ce cas là un thread pourrait t'aider. En effet, si tu lances tes calculs dans un thread séparé, ils se dérouleront de manière concurrente au reste du programme. Du coup ta fenêtre répondra, mais il faut faire attention à ce qu'il soit impossible d'aller modifier tes données.
Une autre raisons à ce "ne répond pas" c'est que tu as un bug dans ton programme et que tu tombes, par exemple, dans une boucle infini.
Ton programme ne plante pas forcément s'il ne répond plus, c'est peut être que le calcul est trop long. En effet dans ce cas là un thread pourrait t'aider. En effet, si tu lances tes calculs dans un thread séparé, ils se dérouleront de manière concurrente au reste du programme. Du coup ta fenêtre répondra, mais il faut faire attention à ce qu'il soit impossible d'aller modifier tes données.
Une autre raisons à ce "ne répond pas" c'est que tu as un bug dans ton programme et que tu tombes, par exemple, dans une boucle infini.
Ok alors ca marche :
j'ai ajouter une progress bar qui me permet d'actualiser ma fenetre un minimum et un QCoreApplication ca a suffi.
J'ai une autre question du coup :
pourquoi le traitement d'une image 200x200 prend il 2secondes alors que du 300x300 met plus d'une minute???
a savoir j'utilise toujours le meme algo tout au longs du traitement quelque soit l'image...
Est ce que le systeme peut saturé et etre ralenti??? une question de buffer ou je ne sais quoi? Si vous avez des idées ca m'interesse.
Merci a tous
j'ai ajouter une progress bar qui me permet d'actualiser ma fenetre un minimum et un QCoreApplication ca a suffi.
J'ai une autre question du coup :
pourquoi le traitement d'une image 200x200 prend il 2secondes alors que du 300x300 met plus d'une minute???
a savoir j'utilise toujours le meme algo tout au longs du traitement quelque soit l'image...
Est ce que le systeme peut saturé et etre ralenti??? une question de buffer ou je ne sais quoi? Si vous avez des idées ca m'interesse.
Merci a tous
oui, mais quel algorithme ?
en passant de 200² à 300², tu multiplie par 2,25 ton nombre de pixel. Il faut savoir que selon le type d'algorithme, le temps passé peut évoluer en fonction du logarithme du nombre de points, proportionnellement avec le nombre de point, au carré, ou même de manière exponentielle.
Ce qui peut expliquer que tu explose les temps de calcul.
en passant de 200² à 300², tu multiplie par 2,25 ton nombre de pixel. Il faut savoir que selon le type d'algorithme, le temps passé peut évoluer en fonction du logarithme du nombre de points, proportionnellement avec le nombre de point, au carré, ou même de manière exponentielle.
Ce qui peut expliquer que tu explose les temps de calcul.