Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
tkinter [Le 11/09/2022, 12:01] moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
tkinter [Le 25/11/2023, 14:36] (Version actuelle) Amiralgaby [PyConnect] ne pas utiliser la commande ifconfig mais ip addr show |
||
|---|---|---|---|
| Ligne 5: | Ligne 5: | ||
| ===== Présentation ===== | ===== Présentation ===== | ||
| - | **Tkinter** est une librairie basique mais très simple d'utilisation pour construire rapidement des interfaces graphiques avec [[:python|Python]]. | + | **Tkinter** est une bibliothèque basique mais très simple d'utilisation pour construire rapidement des interfaces graphiques avec [[:python|Python]]. |
| Le style de widgets n'est pas très esthétique (question de goût) mais ça reste tout de même une bonne base pour commencer dans le développement d'interface graphique (GUI). | Le style de widgets n'est pas très esthétique (question de goût) mais ça reste tout de même une bonne base pour commencer dans le développement d'interface graphique (GUI). | ||
| Ligne 102: | Ligne 102: | ||
| # Vérification de la connexion internet avec interface et ping | # Vérification de la connexion internet avec interface et ping | ||
| # | # | ||
| + | |||
| #Importation des librairies nécéssaire au bon fonctionnement du programme. | #Importation des librairies nécéssaire au bon fonctionnement du programme. | ||
| #Tkinter pour l'interface graphique | #Tkinter pour l'interface graphique | ||
| #urllib pour les schémas internet | #urllib pour les schémas internet | ||
| #os pour dialoguer avec le systeme | #os pour dialoguer avec le systeme | ||
| - | from Tkinter import * | + | from tkinter import * |
| - | import urllib as url | + | from urllib import request |
| import os | import os | ||
| class Application(Frame): | class Application(Frame): | ||
| Ligne 116: | Ligne 116: | ||
| self.etat = Label(self, text='',font='Times 28 italic bold') | self.etat = Label(self, text='',font='Times 28 italic bold') | ||
| self.etat.grid(row=0, column=0, columnspan=4, sticky=NSEW) | self.etat.grid(row=0, column=0, columnspan=4, sticky=NSEW) | ||
| - | + | ||
| self.lab_iface = Label(self, text='Interfaces:',font='Times',underline=0) | self.lab_iface = Label(self, text='Interfaces:',font='Times',underline=0) | ||
| self.lab_iface.grid(row=1,column=0,sticky=NSEW) | self.lab_iface.grid(row=1,column=0,sticky=NSEW) | ||
| - | + | ||
| self.iface = Text(self, font='Times 10') | self.iface = Text(self, font='Times 10') | ||
| self.iface.grid(row=2, column=0, sticky=NSEW) | self.iface.grid(row=2, column=0, sticky=NSEW) | ||
| - | + | ||
| self.lab_ping = Label(self, text='Ping:',font='Times',underline=0) | self.lab_ping = Label(self, text='Ping:',font='Times',underline=0) | ||
| self.lab_ping.grid(row=1,column=2,sticky=NSEW) | self.lab_ping.grid(row=1,column=2,sticky=NSEW) | ||
| - | + | ||
| self.ping = Text(self, font='Times',state='disabled') | self.ping = Text(self, font='Times',state='disabled') | ||
| self.ping.grid(row=2, column=1, columnspan=3, sticky=NSEW) | self.ping.grid(row=2, column=1, columnspan=3, sticky=NSEW) | ||
| - | + | ||
| self.recharger = Button(self, text='Recharger', font='Times', command=self.checkIface) | self.recharger = Button(self, text='Recharger', font='Times', command=self.checkIface) | ||
| self.recharger.grid(row=3, column=0, sticky=NSEW) | self.recharger.grid(row=3, column=0, sticky=NSEW) | ||
| - | + | ||
| self.quitter = Button(self, text='Quitter', font='Times', command=self.leave) | self.quitter = Button(self, text='Quitter', font='Times', command=self.leave) | ||
| self.quitter.grid(row=3, column=1, columnspan=3,sticky=NSEW) | self.quitter.grid(row=3, column=1, columnspan=3,sticky=NSEW) | ||
| - | + | ||
| self.checkIface() | self.checkIface() | ||
| - | + | ||
| def checkIface(self): | def checkIface(self): | ||
| self.iface.config(state='normal') | self.iface.config(state='normal') | ||
| self.iface.delete(1.0,END) | self.iface.delete(1.0,END) | ||
| - | self.listing = os.popen('ifconfig', 'r').read() | + | self.listing = os.popen('ip addr show', 'r').read() |
| self.iface.insert(END, self.listing) | self.iface.insert(END, self.listing) | ||
| self.iface.config(state='disabled') | self.iface.config(state='disabled') | ||
| self.checkInternet() | self.checkInternet() | ||
| - | + | ||
| def checkInternet(self): | def checkInternet(self): | ||
| try: | try: | ||
| - | url.urlopen('http://www.google.com') | + | request.urlopen('http://www.google.com') |
| self.etat.config(text='Connexion internet active') | self.etat.config(text='Connexion internet active') | ||
| self.checkPing() | self.checkPing() | ||
| - | except: | + | except Exception as e: |
| - | self.etat.config(text='Connexion internet inactive') | + | print(e) |
| - | self.ping.config(state='normal') | + | self.etat.config(text='Connexion internet inactive') |
| - | self.ping.delete(1.0,END) | + | self.ping.config(state='normal') |
| - | self.ping.insert(END, 'Ping impossible...') | + | self.ping.delete(1.0,END) |
| - | self.ping.config(state='disabled') | + | self.ping.insert(END, 'Ping impossible...') |
| - | + | self.ping.config(state='disabled') | |
| + | |||
| def checkPing(self): | def checkPing(self): | ||
| self.ping.config(state='normal') | self.ping.config(state='normal') | ||
| Ligne 166: | Ligne 167: | ||
| self.parent.after(1,self.parent.update()) | self.parent.after(1,self.parent.update()) | ||
| c = c-1 | c = c-1 | ||
| - | + | ||
| self.ping.config(state='disabled') | self.ping.config(state='disabled') | ||
| - | + | ||
| def leave(self): | def leave(self): | ||
| quit() | quit() | ||
| + | |||
| if __name__ == '__main__': | if __name__ == '__main__': | ||
| fen = Tk() | fen = Tk() | ||
| fen.title('Connexion Internet') | fen.title('Connexion Internet') | ||
| fen.resizable(False,False) | fen.resizable(False,False) | ||
| - | + | ||
| app = Application(fen) | app = Application(fen) | ||
| app.grid(row=0, column=0, sticky=NSEW) | app.grid(row=0, column=0, sticky=NSEW) | ||
| - | + | ||
| fen.mainloop() | fen.mainloop() | ||
| </file> | </file> | ||