Bonjour,
Lors de mon projet je rencontre une chose qui m'est difficilement explicable. Voici mon problème, lorsque je lance mon programme sous PyScripter tout se passe correctement, enfin comme je veux. Par contre lorsque je lance le programme via le fichier .py il ne me fait pas la même chose.
Dans mon code j'utilise les threads pour avoir des temporisation tout en pouvant continuer d'interagir avec le reste du programme. Mon but étant de faire clignoter une image voir plusieurs.
Voici des parties de mon code qui n'ont pas l'air de fonctionner correctement.
Code des temporisations:
Code de l'interaction sur les variables:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 def temporisation(): global continuer while continuer: def tempo301(): global ZAP_301 if ZAP_301 == "ZAP_301_TEMPO": pygame.time.wait(5000) EPA_302 = "ZAP_301_CLI" t301 = Timer(0.1, tempo301) t301.start() def tempo302(): global EPA_302, ZAP_304, ZAP_306, ZAP_308, ZAP_310 if EPA_302 == "EPA_302_TEMPO": pygame.time.wait(5000) EPA_302 = "EPA_302_BLANC" elif ZAP_304 == "ZAP_304_TEMPO": pygame.time.wait(500) ZAP_304 = "ZAP_304_CLI" elif ZAP_306 == "ZAP_306_TEMPO": pygame.time.wait(500) ZAP_306 = "ZAP_306_CLI" elif ZAP_308 == "ZAP_308_TEMPO": pygame.time.wait(500) ZAP_308 = "ZAP_308_CLI" elif ZAP_310 == "ZAP_310_TEMPO": pygame.time.wait(500) ZAP_310 = "ZAP_310_CLI" t302 = Timer(0.1, tempo302) t302.start() tempo = Timer(0.1, temporisation) tempo.start() def clignotement(): global etat, continuer while continuer: etat = 0 pygame.time.wait(500) etat = 1 pygame.time.wait(500) cligote = Timer(0.1, clignotement) cligote.start()
Sous PyScripter j'ai bien mes tempos avec les changements de variables, par contre avec le fichiers .py j'arrive à modifier ma premières variable, mais j'ai l'impression que je n'arrive pas à récupérer le changements de variable car mon voyant reste allumé au lieu de clignoter.
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 if It_RP_4T.collidepoint(event.pos): if IT_RP_4T == "DE_RP_4T": # si litineraire est detruit on lance les conditions de formations IT_RP_4T = "FO_RP_4T" elif IT_RP_4T == "CLI_RP_4T": # si litineraire est enregistrer ou defaut de formation on detruit l itineraire IT_RP_4T = "DE_RP_4T" pygame.display.update(fenetre.blit(Bouton_4T_e, (F_4T, O_RP))) elif IT_RP_4T == "ET_RP_4T" and EPA_302 == "EPA_302_BLANC" or EPA_302 == "EPA_302_BLANC": # si litineraire est forme et l Epa au blanc on detruit l itineraire IT_RP_4T = "DE_RP_4T" EPA_302 = "EPA_302_BLANC" pygame.display.update(fenetre.blit(Bouton_4T_e, (F_4T, O_RP))) Z314 = "Z314_ETEINT" Z310 = "Z310_ETEINT" elif IT_RP_4T == "ET_RP_4T" and EPA_302 == "EPA_302_ROUGE" and FC_302 == True: # si litineraire est forme et l Epa au rouge avec le fc de commande on lance la tempo EPA_302 = "EPA_302_TEMPO"
Désolé si le code est lourd mais j'ai appris tous seul et donc je reconnais que mon code ne doit pas être bien propre, et je suis preneur pour l'améliorer et aussi pour respecter les normes de codage.
Je suis sous windows seven 64bits
J'ai la version 2.5.3.0 X64 de PyScripter et la version 3.3.1 de Python
Merci d'avance pour votre aide.
Partager