Script python qui ne reste pas à l'écran
Baldo35
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai écrit un petit script en python qui fait la conversion Francs Euros.
Il fonctionne bien avec l'interface PyScripter mais quand je le lance avec l'Explorateur de fichiers de Windows 10 à l'écran je n'ai brièvement qu'une fenêtre DOS.
Windows 10
Python 3.8.3
PyScripter 3.6.3.0 32 bits
Est-ce que quelqu'un peut m'aider ?
Merci
j'ai écrit un petit script en python qui fait la conversion Francs Euros.
Il fonctionne bien avec l'interface PyScripter mais quand je le lance avec l'Explorateur de fichiers de Windows 10 à l'écran je n'ai brièvement qu'une fenêtre DOS.
Windows 10
Python 3.8.3
PyScripter 3.6.3.0 32 bits
Est-ce que quelqu'un peut m'aider ?
Merci
#------------------------------------------------------------------------------- # Name: FrancsEuro.py # Purpose: # # Author: # # Created: 25/08/2020 # Copyright: (c) 2020 # Licence: <your licence> #------------------------------------------------------------------------------- def main(): pass if __name__ == '__main__': main() from tkinter import * # Fonction de destruction de la fenêtre principale def exit(event): root.destroy() def switch_feef(): # On efface les deux champs de saisie Euros.delete(0 , END) Francs.delete(0 , END) if btn_ch_mode["text"] == "Francs -> Euros" : btn_ch_mode["text"] = "Euros -> Francs" root.title("Conversion Francs<->Euros") Francs.focus_set() else: btn_ch_mode["text"] = "Francs -> Euros" Euros.focus_set() root.title("Conversion Euros<->Francs") def convert(event): # Si Francs et Euros sont remplis ont les effaces if ((Francs.get() != "") and (Euros.get() != "")): effacer() x = Francs.get() y = Euros.get() # Si Francs et Euros sont vides le bouton Effacer est grisé if (x == "") and (y == ""): btn_effacer["state"] = "disabled" else: btn_effacer["state"] = "normal" if (x != "" ) and (y == ""): # Vérification de la bonne saisie de Francs try : tmp = float(x) * 0.1524 except : # On efface le champ Francs et on affiche l'erreur Francs.delete(0 , END) Francs.insert(0, 'Saisie incorrecte') else : # C'est bon alors on affiche le résultat round = float("%0.5f" % tmp) strround = str(round) Euros.delete(0 , END) Euros.insert(0, strround + ' €') if (y != "") and (x == ""): # Vérification de la bonne saisie d'Euros try : tmp = float(y) * 6.5596 except : # On efface le champ Euros et on affiche l'erreur Euros.delete(0 , END) Euros.insert(0, 'Saisie incorrecte') else : # C'est bon alors on affiche le résultat round = float("%0.5f" % tmp) strround = str(round) Francs.delete(0 , END) Francs.insert(0, strround + ' F') # Efface les deux champs de saisie et grise le bouton Effacer def effacer(): # On efface les deux champs de saisie Euros.delete(0 , END) Francs.delete(0 , END) # Le bouton Effacer est grisé btn_effacer["state"] = "disabled" # Le curseur clignote dans le champ Francs Francs.focus_set() root.title("Conversion Francs<->Euros") root = Tk() # Place l'application au centre de l'écran root.eval('tk::PlaceWindow %s center' % root.winfo_pathname(root.winfo_id())) root.title("Conversion Francs<->Euros") root.geometry("450x135") # Bouton de switch de la conversion Francs->Euros ou Euros->Francs ainsi que son étiquette mode = Label(root,text="Choix du mode") mode.pack(side = LEFT) btn_ch_mode = Button(root, text="Euros -> Francs", fg ='blue', command = switch_feef) btn_ch_mode.pack(side = LEFT) # Interdire l'agrandissement de la fenêtre root.resizable(height = False, width = False) root.size() Label(root,text="Somme en Francs : ").pack() # Saisie du champ Francs Francs = Entry(root) Francs.pack() Label(root,text="Somme en euros : ").pack() # Saisie du champ Euros Euros = Entry(root) Euros.pack() # Le bouton Effacer est créé btn_effacer = Button(root, text="Effacer", fg ='blue', command = effacer) btn_effacer.pack(side = LEFT) # Par défaut les deux champs de saisie sont vides et le bouton Effacer est grisé btn_effacer["state"] = "disabled" # Le bouton Quitter est créé bouton2 = Button(root, text="Quitter", fg ='blue', command = root.destroy) bouton2.pack(side = RIGHT) # Etiquette du mode d'emploi Label(root,text="Entrez une somme en Francs \nou en Euros puis Enter\nQ ou Echap pour quitter").pack() # Le curseur clignote dans le champ Francs Francs.focus_set() # Détection de la touche Enter, Echap ou Q root.bind('<Return>', convert) root.bind("<Escape>", exit) root.bind("q", exit) root.mainloop()
A voir également:
- Script python qui ne reste pas à l'écran
- Double ecran - Guide
- Script vidéo youtube - Guide
- Capture d'écran whatsapp - Accueil - Messagerie instantanée
- Ecran a l'envers - Guide
- Mon pc s'allume mais l'écran reste noir - Guide
3 réponses
Ok bonjour Phil_1857,
merci de ton effort.
En fait je pense que j'ai un problème de version de Python ( 3.8.3 et 3.9 sur ma machine), le py.exe de la 3.9 n'accepte pas :
alors que la 3.8.3 ne pose pas de problème.
Quant à l'entête de mon script qui ne sert à rien, je prends bonne note.
merci de ton effort.
En fait je pense que j'ai un problème de version de Python ( 3.8.3 et 3.9 sur ma machine), le py.exe de la 3.9 n'accepte pas :
root.eval('tk::PlaceWindow %s center' % root.winfo_pathname(root.winfo_id()))
alors que la 3.8.3 ne pose pas de problème.
Quant à l'entête de mon script qui ne sert à rien, je prends bonne note.
Python 3.7.2 l'accepte, apparemment .... mais sur mon PC, la fenêtre ne se crée pas au centre de l'écran, mais un peu sur la droite
Sinon, moi, j'écris ça comme ceci (après tout, pourquoi vouloir absolument la fenêtre en plein centre ?) :
+200+200 étant la position à partir du coin haut/gauche de l'écran
Ou alors essaie le nouveau formatage:
Pour la partie qui ne sert à rien, __name__ est égal à __main__, donc on appelle la fonction main qui ne fait rien du tout :-)
Sinon, moi, j'écris ça comme ceci (après tout, pourquoi vouloir absolument la fenêtre en plein centre ?) :
root.geometry("450x135+200+200")
+200+200 étant la position à partir du coin haut/gauche de l'écran
Ou alors essaie le nouveau formatage:
root.eval('tk::PlaceWindow {} center'.format(root.winfo_pathname(root.winfo_id())))
Pour la partie qui ne sert à rien, __name__ est égal à __main__, donc on appelle la fonction main qui ne fait rien du tout :-)