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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
| #!/usr/bin/python
# *- coding: iso-8859-1 -*
import sys
import os
import math
import string
import wx #importation du modulegraphique wx
from random import randrange #importation de la fonction randrange du module random,
import winsound
ID_PARENT = 1000 #control ID de la fenetre principale
#classe fenetre principalemenus et boutons
class LesMenus(wx.Frame):
def __init__(self, titre):
wx.Frame.__init__(self, None, ID_PARENT, title = titre, size = (800, 600))
self.panel = wx.Panel(self, -1, pos=(10,50),size=(300,400))
self.panel.SetBackgroundColour('black')
menuFichier = wx.Menu(style = wx.MENU_TEAROFF)
menuFichier.Append(wx.ID_EXIT, "&Quitter\tCTRL+q")
menuAide = wx.Menu(style = wx.MENU_TEAROFF)
menuAide.Append(wx.ID_ABOUT, "&A propos ...\tCTRL+N")
#Barre de menu et affichage des menus dans cette barre
menuBarre = wx.MenuBar()
menuBarre.Append(menuFichier, "&Fichier")
menuBarre.Append(menuAide, "&Aide")
self.SetMenuBar(menuBarre)
#creation des boutons
boutonNiveau1 = wx.Button(self.panel, -1, "Add", pos=(200, 200))
boutonNiveau2 = wx.Button(self.panel, -1, "Ajouter", pos=(200, 250))
boutonAide = wx.Button(self.panel, -1, "Aide", pos=(600, 415))
boutonExit = wx.Button(self.panel, -1, "Quitter", pos=(700, 415))
#evenements des menus
wx.EVT_MENU(self, wx.ID_EXIT, self.OnExit)
wx.EVT_MENU(self, wx.ID_ABOUT, self.OnAbout)
#evenements des boutons
self.Bind(wx.EVT_BUTTON, self.OnExit, boutonExit)
self.Bind(wx.EVT_BUTTON, self.OnAbout, boutonAide)
self.Bind(wx.EVT_BUTTON, self.Add, boutonNiveau1)
self.Bind(wx.EVT_BUTTON, self.EcrireFichier, boutonNiveau2)
#definition du menu quitter
def OnExit(self, evt):
winsound.PlaySound('wav_tel/Quitter.wav', winsound.SND_NODEFAULT)
self.Destroy()
#definition du menu a propos
def OnAbout(self, evt):
d = wx.MessageDialog(self, "Agenda téléphonique, créé en décembre 2007\nPar Réginald Arseneau\nVous pouvez me rejoindre a l'adresse suivante:\nregimari@nb.sympatico.ca", "A propos : Agenda téléphonique Version 1.00, et pour numéro de téléphone seulement!", wx.OK)
d.ShowModal()
d.Destroy()
def Add(self, evt):
n = wx.TextEntryDialog(self,"Entrez le premier chiffre ici","",style = wx.OK | wx.CANCEL | wx.CENTRE)
#afficher la fenêtre tant et aussi longtemps que l'on ne la fermera pas
reponse = n.ShowModal()
#Récupération du text entré
nn = n.GetValue()
if reponse != wx.ID_OK or nn == "":
n.Destroy()
#Demande d'entrer le second numéro.
reponse = n1.ShowModal()
nn = n.GetValue()
if reponse != wx.ID_OK or nn == "":
n.Destroy()
#verification si autre que des chiffres
if nn == '': #si chaine vide
winsound.PlaySound('wav_tel/Appel.wav', winsound.SND_NODEFAULT)
nn = '0' #on force a mettre 0
lnn = len(nn) #longueur de la chaine
vf = 0
for i in range(0, lnn):
if ord(nn[i]) < 48 or ord(nn[i]) > 57:
vf = 1
#recuperation du nombre en un entier numerique
if vf == 1:
winsound.PlaySound('wav_tel/Appel.wav', winsound.SND_NODEFAULT)
nb = 0
vf = 0
else:
nb = int(nn)
n.Destroy()
if reponse != wx.ID_OK or nn == "":
self.Destroy()
if reponse :
#on affiche le numéro dans la boîte de dialogue.
n1 = wx.TextEntryDialog(self,"Entrez le deuxième chiffre ici","",style = wx.OK | wx.CANCEL | wx.CENTRE)
winsound.PlaySound('c:/Python25/wav_tel/bing.wav', winsound.SND_NODEFAULT)
d = wx.MessageDialog(self, " La réponse est :", "Affichage du résultat !", wx.OK)
d.ShowModal()
d.Destroy()
#Ici, quand j'exécute le programme, la première boîte de dialogue s'afffiche et j'entre le numéro, puis si je fais entré la deuxième boîte s'affiche et j'entre ledeuxième chiffre.
#Une fois le deuxième chiffre entré, si je fais entrée la boîte de résultat s'affiche. J'ai le message écrit dans la boîte de dialogue.
# Toutefois, je ne sais pas quoi écrire pour qu'il affiche le résultat. J'écris "résultat :" (n+n1) , mais un message d'erreur.
def EcrireFichier(self, evt):
fichier = open('lecture.txt', 'a')
ligne = wx.TextEntryDialog(self,"Entrez le texte ici","",style = wx.OK | wx.CANCEL | wx.CENTRE)
#afficher la fenêtre tant et aussi longtemps que l'on ne la fermera pas
reponse = ligne.ShowModal()
#Récupération du text entré
nn = ligne.GetValue()
#recuperation du nombre en string
if nn != '':
fichier.write(nn.encode("latin-1") +"\n")
#fichier.write(nn +"\n")
fichier.close()
ligne.Destroy()
return
#la classe de l'application
class MonApp(wx.App):
def OnInit(self):
fen = LesMenus("Caculatrice")
fen.Show(True)
self.SetTopWindow(fen)
winsound.PlaySound('wav_tel/Appel.wav', winsound.SND_NODEFAULT)
return True
#boucle principale
app = MonApp()
app.MainLoop() |
Partager