CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Le programme ne répond pas

Pseudo supprimé
Pseudo supprimé 22 février 2015 à 10:09:38

Bonjour, quand je fait un programme python sous Tkinter qui demande pas mal de temps (traitement d'images, traitement de fichiers), la fenêtre Tkinter ne répond pas pendant parfois une petite dizaine de secondes (normal, ça tourne derrière). C'est agaçant, surtout quand c'est un programme que l'on bichonne et qui n'a pas de bugs, a part ce truc
Comment faire pour ne pas avoir ce pb ? Mettre régulièrement un time.sleep(0.1) :question:

kuro_usagi
kuro_usagi
Niveau 2
22 février 2015 à 10:43:51

Commence par nous montrer ton code, ça pourrait être utile je pense.

[Kyomaro]
[Kyomaro]
Niveau 10
22 février 2015 à 12:27:28

A mon avis t'as du mal coder une fonction ou un truc comme ça, mais sans ton code on peut pas t'aider :(

Pseudo supprimé
Pseudo supprimé 22 février 2015 à 14:10:37

Non non, tout est bien codé et les programmes donnent des résultats très satisfaisants.
J'ai pas mal d'images prises avec un appareil photo de 16 Mp (j'aime bien la photo :-) ) : l'image fait 6.9Mo et 4608x3456 pixels, donc ça fait 1640448 opérations (1,6x10^6) (+ 3 valeurs par pixel (RVB))
Le programme travaille sur l'image étudiée + l'image où les modifications sont appliquées, donc 2 images de même taille (ca au pire on s'en fout pour la vitesse)

Après, je peux toujours vous donner un bout de code, mais ça n'a absolument rien de tordu puisque c'est en gros 2 boucles for imbriquées

Exemple : ici, c'est pour transformer une photo en noir ou blanc ( ≠ niveaux de gris)


    elif n==l_option[7]:
        message.set('Modification en cours...')
        l=[]
        im2=Image.new('RGB', (x,y), 'white')
        pix2=im2.load()
        for i in range(x):
            for j in range(y):
                e=int((pix[i,j][0]+pix[i,j][0]+pix[i,j][0])/3)
                if e>128:
                    pix_new[i,j]=(255,255,255)
                else:
                    pix_new[i,j]=(0,0,0)
        description='noir et blanc'

(temps de traitement : 48s montre en main ; proc i3 1.8GHz)

angivare
angivare
Niveau 10
22 février 2015 à 14:12:41

Je sais pas comment python marche pour ce genre de trucs, mais typiquement quand t'as une fonction bloquante qui fait des gros calculs et que t'es dans l'UI thread, c'est là que le programme répond plus pendant quelques temps

Du coup la solution c'est de rendre ta fonction non-bloquante: t'appelles la fonction, mais dans un autre thread, puis une fois les calculs finis, tu lances un callback dans l'UI thread pour agir en fonction des résultats

[Kyomaro]
[Kyomaro]
Niveau 10
22 février 2015 à 15:20:33

Yep bonne idée VDD, utilise les threads :)

Pseudo supprimé
Pseudo supprimé 22 février 2015 à 15:57:43

A oui pas bête, j'en ai déjà entendu parler, je vais essayer
Merci A+

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment