def afficher(self): message = [] for k in range(len(self.services)): message += ['%d. %s' % (k + 1, self.services[k].nom)] self.label1 = Label(self.minitel, 0.1, 0.0, [ self.titre, '-------------', 'v%s - %s' % (self.version, self.auteur) ], 0.7, 0.22, True, 'centre') self.label2 = Label(self.minitel, 0.1, 0.4, message, 0.7, 0.0, True, 'gauche') self.ligne1 = Ligne(self.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.minitel, 0.9, 0.99, 0.1, 'ENVOI') self.label3 = Label(self.minitel, 0.0, 0.99, ['Choix :']) self.champ1 = ChampTexte(self.minitel, 0.2, 0.99, 2, 2, '') self.elements = Conteneur(self.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.label2) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.label3) self.elements.ajouter(self.champ1) self.elements.afficher() self.elements.executer({'ENVOI': self.valider})
def afficher(self): # On récupère la liste des appareils connectés au réseau local appareils = appareils_connectes('192.168.0.*', 15) message = [] for k in range(len(appareils)): message += ['%s : %s' % (appareils[k]['ip'], appareils[k]['nom'])] # On afficheg la page self.label1 = Label(self.pa.minitel, 0.05, 0.1, message, 0.8, 0.45, True, 'gauche') self.label2 = Label(self.pa.minitel, 0.58, 0.99, ['Rafraîchir :'], 0.0, 0.0, False, 'gauche') self.ligne = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.bouton2 = Bouton(self.pa.minitel, 0.9, 0.99, 0.0, 'ENVOI') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.label2) self.elements.ajouter(self.ligne) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.afficher() self.elements.executer({ 'SOMMAIRE': self.pa.executer, 'ENVOI': self.executer })
def afficher_page_connection(self): self.label1 = Label(self.pa.minitel, 0.05, 0.1, [ 'Veuillez saisir les champs', 'ci-dessous pour piloter', 'ouverture/fermeture des volets' ], 0.8, 0.2, True, 'centre') self.label2 = Label( self.pa.minitel, 0.05, 0.4, ['Adresse réseau :', ' Identifiant :', ' Mot de passe :'], 0.8, 0.2, True, 'gauche') self.champ1 = ChampTexte(self.pa.minitel, 0.53, 0.51, 15, 100, '') self.champ2 = ChampTexte(self.pa.minitel, 0.53, 0.54, 15, 100, '') self.champ3 = ChampTexte(self.pa.minitel, 0.53, 0.57, 15, 100, '', None, True) self.ligne1 = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.bouton2 = Bouton(self.pa.minitel, 0.9, 0.99, 0.0, 'ENVOI') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.label2) self.elements.ajouter(self.champ1) self.elements.ajouter(self.champ2) self.elements.ajouter(self.champ3) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.afficher() self.elements.executer({ 'SOMMAIRE': self.pa.executer, 'ENVOI': self.valider_page_connection })
def ecran_login(): minitel.efface() image = Image.open('Dotclear-logo.png') image = image.resize((80,36), Image.ANTIALIAS) image_minitel = ImageMinitel(minitel) image_minitel.importer(image) image_minitel.envoyer(1,1) bouton_envoi() conteneur = Conteneur(minitel, 1, 13, 40, 4, 'blanc', 'noir') labelLogin = Label(minitel, 1, 15, "Nom d'utilisatrice ou d'utilisateur", 'rouge') champLogin = DCInput(minitel, 1, 16, 40, 60, envoi_callback = validate_login, update_callback = login_form.updateLogin) labelPass = Label(minitel, 1, 18, "Mot de passe", 'rouge') champPass = DCInput(minitel, 1, 19, 40, 60, champ_cache=True, envoi_callback = validate_login, update_callback = login_form.updatePassword) conteneur.ajoute(labelLogin) conteneur.ajoute(champLogin) conteneur.ajoute(labelPass) conteneur.ajoute(champPass) conteneur.affiche() conteneur.executer()
def afficher_page_saisie( self ): self.label1 = Label(self.pa.minitel, 0.05, 0.1, ['Veuillez saisir la commune','et le pays ou les coordonnées','géographiques désirées'], 0.8, 0.2, True, 'centre') self.label2 = Label(self.pa.minitel, 0.05, 0.4, [' Commune :',' Pays :',' Latitude :','Longitude :'], 0.8, 0.27, True, 'gauche') self.champ1 = ChampTexte(self.pa.minitel, 0.4, 0.51, 20, 30, geocoder.ip('me').city) self.champ2 = ChampTexte(self.pa.minitel, 0.4, 0.54, 20, 30, geocoder.ip('me').country) self.champ3 = ChampTexte(self.pa.minitel, 0.4, 0.57, 20, 30, '') self.champ4 = ChampTexte(self.pa.minitel, 0.4, 0.61, 20, 30, '') self.ligne1 = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.bouton2 = Bouton(self.pa.minitel, 0.9, 0.99, 0.0, 'ENVOI') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.label2) self.elements.ajouter(self.champ1) self.elements.ajouter(self.champ2) self.elements.ajouter(self.champ3) self.elements.ajouter(self.champ4) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.afficher() self.elements.executer({'SOMMAIRE':self.pa.executer,'ENVOI':self.valider_page_saisie})
def ecran_write(): minitel.efface() minitel.position(1,1) minitel.effet(False,False, True) minitel.envoyer('Dotclear: nouveau billet') minitel.effet(False, False, False) conteneur = Conteneur(minitel, 1, 3, 40, 4, 'blanc', 'noir') labelTitre = Label(minitel, 1, 3, "Titre", 'rouge') champTitre = DCInput(minitel, 1, 4, 40, 60, envoi_callback = validate_write, update_callback = post_form.updateTitle) labelChapo = Label(minitel, 1, 6, 'Extrait', 'rouge') champChapo = DCInput(minitel, 1, 7, 40, 60, envoi_callback = validate_write, update_callback = post_form.updateExtract) labelContent = Label(minitel, 1, 9, 'Contenu', 'rouge') champContent1 = DCInput(minitel, 1, 10, 40, 40, envoi_callback = validate_write, update_callback = post_form.updateContent1) champContent2 = DCInput(minitel, 1, 11, 40, 40, envoi_callback = validate_write, update_callback = post_form.updateContent2) champContent3 = DCInput(minitel, 1, 12, 40, 40, envoi_callback = validate_write, update_callback = post_form.updateContent3) champContent4 = DCInput(minitel, 1, 13, 40, 40, envoi_callback = validate_write, update_callback = post_form.updateContent4) champContent5 = DCInput(minitel, 1, 14, 40, 40, envoi_callback = validate_write, update_callback = post_form.updateContent5) conteneur.ajoute(labelTitre) conteneur.ajoute(champTitre) conteneur.ajoute(labelChapo) conteneur.ajoute(champChapo) conteneur.ajoute(labelContent) conteneur.ajoute(champContent1) conteneur.ajoute(champContent2) conteneur.ajoute(champContent3) conteneur.ajoute(champContent4) conteneur.ajoute(champContent5) conteneur.affiche() bouton_envoi() conteneur.executer()
def afficher_page_resultats(self): # On récupère les données sur les volets url = '%s/json.htm?type=devices&filter=all&used=true&order=Name&username=%s&password=%s' % ( self.url_base, self.identifiant, self.mot_passe) contenu = requests.get(url) donnees = contenu.json() # On vérifie si la connection est ok if donnees['status'] != 'OK': self.pa.minitel.erreur(1, 20, "Impossible de se connecter") self.page_actuelle = 'connection' self.executer() return # On stocke les données sur les volets au bon format self.volets = [] for volet in donnees['result']: self.volets += [{ 'idx': volet['idx'], 'etat': ('o' if volet['Status'] == 'Open' else 'f'), 'nom': volet['Name'] }] # On affiche la liste des volets options = [] for k in range(len(self.volets)): options += [ '%s (%s)' % (self.volets[k]['nom'], self.volets[k]['etat']) ] self.menu1 = Menu(self.pa.minitel, options, 0.2, 0.3) self.ligne1 = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.label1 = Label(self.pa.minitel, 0.5, 0.99, ['Ouvrir/fermer :'], 0.0, 0.0, False, 'gauche') self.bouton2 = Bouton(self.pa.minitel, 0.9, 0.99, 0.0, 'ENVOI') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.menu1) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.label1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.afficher() self.elements.executer({ 'SOMMAIRE': self.pa.executer, 'ENVOI': self.valider_page_resultats })
def afficher(self): self.label1 = Label(self.pa.minitel, 0.05, 0.1, [ 'Veuillez saisir les informations', 'ci-dessous pour changer le', 'mot de passe réseau wifi' ], 0.8, 0.2, True, 'centre') self.label2 = Label(self.pa.minitel, 0.05, 0.4, [ ' SSID réseau wifi :', ' Mot de passe actuel :', 'Nouveau mot de passe :', ' Confirmation :' ], 0.8, 0.24, True, 'gauche') self.champ1 = ChampTexte(self.pa.minitel, 0.67, 0.51, 9, 100, ssid_wifi_actuel()) self.champ2 = ChampTexte(self.pa.minitel, 0.67, 0.54, 9, 100, '', None, True) self.champ3 = ChampTexte(self.pa.minitel, 0.67, 0.57, 9, 100, '', None, True) self.champ4 = ChampTexte(self.pa.minitel, 0.67, 0.61, 9, 100, '', None, True) self.ligne1 = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.bouton2 = Bouton(self.pa.minitel, 0.9, 0.99, 0.0, 'ENVOI') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.label2) self.elements.ajouter(self.champ1) self.elements.ajouter(self.champ2) self.elements.ajouter(self.champ3) self.elements.ajouter(self.champ4) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.afficher() self.elements.executer({ 'SOMMAIRE': self.pa.executer, 'ENVOI': self.valider })
def afficher_page_resultats( self ): # On met en forme la page courante sur les données météo message = [] n = int(len(self.meteo['daily'])/self.nb_pages_resultats) indice_debut = n*self.numero_page_resultats indice_fin = indice_debut+n for jour in self.meteo['daily'][indice_debut:indice_fin]: date = datetime.fromtimestamp(jour['dt']).strftime('%A %-d %B') temps = jour['weather'][0]['description'] pluie = float(jour['pop']) min_temp = int(round(jour['temp']['min'])) max_temp = int(round(jour['temp']['max'])) pression = int(round(jour['pressure'])) humidite = int(round(jour['humidity'])) vitesse_vent = int(round(jour['wind_speed'])) direction_vent = jour['wind_deg'] lever_soleil = datetime.fromtimestamp(jour['sunrise']).strftime('%Hh%M') coucher_soleil = datetime.fromtimestamp(jour['sunset']).strftime('%Hh%M') message += ['* %s : %s'%(date,temps)] message += [' * Probabilité pluie : %.2f'%(pluie)] message += [' * Températures : %d°C, %d°C'%(min_temp,max_temp)] message += [' * Pression : %d hPa'%(pression)] message += [' * Humidité : %d%%'%(humidite)] message += [' * Direction du vent : %d°'%(direction_vent)] message += [' * Vitesse du vent : %d m/s'%(vitesse_vent)] message += [' * Lever soleil : %s'%(lever_soleil)] message += [' * Coucher soleil : %s'%(coucher_soleil)] message += [' '] # On affiche les informations self.label1 = Label(self.pa.minitel, 0.1, 0.1, message, 0.8, 0.0, False, 'gauche') self.ligne1 = Ligne(self.pa.minitel, 0.0, 0.95, 1.0, 'h', 'blanc') self.bouton1 = Bouton(self.pa.minitel, 0.0, 0.99, 0.0, 'SOMMAIRE') self.bouton2 = Bouton(self.pa.minitel, 0.33, 0.99, 0.0, 'RETOUR') self.bouton3 = Bouton(self.pa.minitel, 0.57, 0.99, 0.0, 'SUITE') self.bouton4 = Bouton(self.pa.minitel, 0.77, 0.99, 0.0, 'CORRECTION') self.elements = Conteneur(self.pa.minitel, 0.0, 0.0, 1.0, 1.0, 'blanc', 'noir') self.elements.ajouter(self.label1) self.elements.ajouter(self.ligne1) self.elements.ajouter(self.bouton1) self.elements.ajouter(self.bouton2) self.elements.ajouter(self.bouton3) self.elements.ajouter(self.bouton4) self.elements.afficher() self.elements.executer({'SOMMAIRE':self.pa.executer,'RETOUR':self.precedent_page_resultats,'SUITE':self.suivant_page_resultats,'CORRECTION':self.valider_page_resultats})
options = [ 'Nouveau', 'Ouvrir', '-', 'Enregistrer', 'Enreg. sous...', 'Rétablir', '-', 'Aperçu', 'Imprimer...', '-', 'Fermer', 'Quitter' ] labelMenu = Label(minitel, 2, 2, "Menu", 'rouge') menu = Menu(minitel, options, 9, 1) labelNom = Label(minitel, 2, 15, "Nom", 'rouge') champNom = ChampTexte(minitel, 10, 15, 20, 60) labelPrenom = Label(minitel, 2, 16, "Prénom", 'rouge') champPrenom = ChampTexte(minitel, 10, 16, 20, 60) conteneur.ajoute(labelMenu) conteneur.ajoute(menu) conteneur.ajoute(labelNom) conteneur.ajoute(champNom) conteneur.ajoute(labelPrenom) conteneur.ajoute(champPrenom) conteneur.affiche()
from minitel.ui.Label import Label minitel = Minitel() minitel.deviner_vitesse() minitel.identifier() minitel.definir_vitesse(1200) minitel.definir_mode('VIDEOTEX') minitel.configurer_clavier(etendu=True, curseur=False, minuscule=True) minitel.echo(False) minitel.efface() minitel.curseur(False) conteneur = Conteneur(minitel, 1, 1, 40, 24) labelNom = Label(minitel, 1, 10, "Nom") champNom = ChampTexte(minitel, 16, 10, 20, 60) labelPrenom = Label(minitel, 1, 12, "Prénom") champPrenom = ChampTexte(minitel, 16, 12, 20, 60) labelpass = Label(minitel, 1, 14, "Mot de passe") champpass = ChampTexte(minitel, 16, 14, 20, 60, champ_cache=True) conteneur.ajoute(labelNom) conteneur.ajoute(champNom) conteneur.ajoute(labelPrenom) conteneur.ajoute(champPrenom) conteneur.ajoute(labelpass) conteneur.ajoute(champpass) conteneur.affiche() conteneur.executer()