J'utilise de plus en plus Tkinter de Python, mais je n'avais pas beaucoup de sites contenant les informations que je voulais (ma préférée), je vais donc le résumer.
De plus, lorsque j'ai eu une session d'étude sur Tkinter, des matériaux fabriqués avec le système Python 3 sont sortis, donc Si vous êtes intéressé, s'il vous plaît. https://nnahito.gitbooks.io/tkinter/content/
Je suis une personne procédurale. Je n'utilise pas du tout l'orientation objet. Mes langues préférées sont BASIC et perl, qui sont des espèces menacées. Donc, orienté objet est le meilleur Génial! !! Veuillez noter que je pense que le style d'écriture est inconnu ou inconnu de ceux qui sont censés l'être.
C'est un ** toolkit qui vous permet de construire ** GUI en Python. Cela vous permet d'exécuter des scripts Python au format GUI.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.mainloop()
Il existe des tonnes de grammaires de base pour Python, alors veuillez trouver votre site de commentaires préféré. Ici, je vais reprendre la partie sur laquelle je suis tombé par hasard dans Tkinter.
Tout d'abord, le format de base est le suivant.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
root.mainloop()
Faire cela ouvrira une fenêtre de 400px * 300px.
root.title (u" nom de la fenêtre ")
Ceci détermine la notation de la barre de titre de la fenêtre
root.geometry (" horizontal x vertical ")
Cela détermine la taille de la fenêtre.
Écrivez la valeur numérique en X (x) inférieur, comme la longueur horizontale x la longueur verticale.
Notez que le traitement du contenu de l'exécution du logiciel est
root = Tkinter.Tk()
Quand
root.mainloop()
Il est décrit entre les deux.
Les détails sont sur cette page, mais il est résumé en détail.
Tout ce dont j'avais besoin était
Utilisez les étiquettes suivantes.
Label (text = u'label name ')
Si vous modifiez la partie "nom de l'étiquette", le contenu de l'étiquette changera.
Voici un exemple.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#étiquette
Static1 = Tkinter.Label(text=u'test')
Static1.pack()
root.mainloop()
Static1 = Tkinter.Label(text=u'test')
Static1
of est le handle de l'étiquette. (Autrement dit, je mets une poignée dans la variable)
De plus, utilisez Static1.pack ()
pour stocker le handle dans le widget de la fenêtre.
Si vous le décomposez, il s'alignera automatiquement et le placera sur la fenêtre.
Si vous voulez le placer n'importe où,
Static1.place (coordonnées x = x, coordonnées y = y)
Utilisez place (coordonnée x = x, coordonnée y = y)
comme dans.
En outre, pour les widgets tels que les étiquettes, il existe des options courantes. Il est résumé sous forme de tableau en haut de la page précédente (Easy Python / Tkinter). Par exemple, il est possible de changer la couleur d'arrière-plan et la couleur du texte de l'étiquette.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#étiquette
Static1 = Tkinter.Label(text=u'test', foreground='#ff0000', background='#ffaacc')
Static1.pack()
root.mainloop()
Les options sont
Static1 = Tkinter.Label(text=u'test', foreground='#ff0000', background='#ffaacc')
Il est possible d'ajouter comme suit.
De plus, par exemple, si vous utilisez place, cela ressemblera à ceci.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#étiquette
Static1 = Tkinter.Label(text=u'test', foreground='#ff0000', background='#ffaacc')
Static1.place(x=150, y=228)
root.mainloop()
Vous pouvez voir que l'étiquette s'est déplacée vers n'importe quelle position. Je vais l'utiliser comme ça.
Créez une zone de saisie sur une ligne "Entrée" qui n'autorise pas les sauts de ligne. Écrivez le code comme ʻEditBox = Tkinter.Entry () `.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#entrée
EditBox = Tkinter.Entry()
EditBox.pack()
root.mainloop()
Pour saisir des caractères depuis le début avec Entrée Utilisez ʻinsert (Tkinter.END, "string to add") `. Cela insérera une "chaîne supplémentaire" sur la dernière ligne. Vous pouvez insérer une chaîne de caractères n'importe où, mais j'omettrai l'explication ici. Pour plus de détails, veuillez consulter ce site
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#entrée
EditBox = Tkinter.Entry()
EditBox.insert(Tkinter.END,"Chaîne de caractères à insérer")
EditBox.pack()
root.mainloop()
Vous pouvez également spécifier la taille de l'entrée.
Il peut être déterminé par Tkinter.Entry (width = size)
.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#entrée
EditBox = Tkinter.Entry(width=50)
EditBox.insert(Tkinter.END,"Chaîne de caractères à insérer")
EditBox.pack()
root.mainloop()
J'ai essayé de l'agrandir.
Utilisez .get ()
pour obtenir le contenu de l'entrée.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#entrée
EditBox = Tkinter.Entry(width=50)
EditBox.insert(Tkinter.END,"Chaîne de caractères à insérer")
EditBox.pack()
#Ici, le contenu de Entry est saisi en valeur
value = EditBox.get()
root.mainloop()
Il peut être spécifié comme ʻEditBox.delete (0, Tkinter.END) . (
.delete(0, Tkinter.END)`)
Vous pouvez le supprimer de n'importe quel endroit, mais je vais l'omettre ici.
Pour plus de détails, veuillez consulter ce site
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#entrée
EditBox = Tkinter.Entry(width=50)
EditBox.insert(Tkinter.END,"Chaîne de caractères à insérer")
EditBox.pack()
#Supprimer le contenu de l'entrée
EditBox.delete(0, Tkinter.END)
root.mainloop()
Depuis que j'ai ajouté un caractère à l'entrée et que je l'ai effacé tel quel, cela signifie que rien n'a été écrit en premier lieu. Je vais donner un exemple qui est un peu plus facile à comprendre dans le prochain élément "bouton".
Les boutons peuvent être créés avec "Button".
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#bouton
Button = Tkinter.Button(text=u'C'est un bouton')
Button.pack()
root.mainloop()
.Button (text = u'caractère à afficher sur le bouton ')
Il peut être spécifié par width = width
.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#bouton
Button = Tkinter.Button(text=u'C'est un bouton', width=50)
Button.pack()
root.mainloop()
Les boutons forment essentiellement des actions dans les fonctions (def :). Créons quelque chose qui supprime le contenu de l'entrée précédente en appuyant sur un bouton.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#
#Appelé ici lorsque le bouton est enfoncé
#
def DeleteEntryValue(event):
#Supprimer le contenu de l'entrée
EditBox.delete(0, Tkinter.END)
#entrée
EditBox = Tkinter.Entry(width=50)
EditBox.insert(Tkinter.END,"Chaîne de caractères à insérer")
EditBox.pack()
#bouton
Button = Tkinter.Button(text=u'C'est un bouton', width=50)
Button.bind("<Button-1>",DeleteEntryValue)
#Click gauche (<Button-1>), Bind pour appeler la fonction DeleteEntryValue
Button.pack()
root.mainloop()
.bind (" <Button-1> ", DeleteEntryValue) ʻest
.bind (" cliquez sur le numéro de traitement ", fonction ou action à appeler) Il est configuré comme suit. Maintenant, lorsque le bouton est cliqué, la fonction spécifiée sera appelée. Cliquez sur "<Button-1>"
"est un clic de roue Faites un clic droit sur `` <Button-3> "
est.
Il y a d'autres événements en plus des clics, mais je ne les toucherai pas ici. Pour plus de détails, veuillez consulter ce site
Lorsque vous appuyez sur le bouton ↓, les caractères disparaissent
Entrée et bouton aussi. Vous pouvez le spécifier avec .place (x = hoge, y = hoge)
au lieu de .pack ()
.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#
#Appelé ici lorsque le bouton est enfoncé
#
def DeleteEntryValue(event):
#Supprimer le contenu de l'entrée
EditBox.delete(0, Tkinter.END)
#entrée
EditBox = Tkinter.Entry(width=30)
EditBox.insert(Tkinter.END,"Chaîne de caractères à insérer")
EditBox.place(x=5, y=10)
#bouton
Button = Tkinter.Button(text=u'C'est un bouton', width=25)
Button.bind("<Button-1>",DeleteEntryValue)
Button.place(x=105, y=60)
root.mainloop()
Ce gars était assez ennuyeux. Donc, je voudrais le diviser en petits morceaux un par un. Dans Tkinter, il semble qu'il s'appelle le bouton Vérifier au lieu de Case à cocher.
Utilisez .Checkbutton ()
.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
CheckBox = Tkinter.Checkbutton()
CheckBox.pack()
root.mainloop()
Faites-le comme CheckBox = Tkinter.Checkbutton (text = u" nom de l'élément ")
.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
CheckBox1 = Tkinter.Checkbutton(text=u"Objet 1")
CheckBox1.pack()
CheckBox2 = Tkinter.Checkbutton(text=u"Point 2")
CheckBox2.pack()
CheckBox3 = Tkinter.Checkbutton(text=u"Point 3")
CheckBox3.pack()
root.mainloop()
De là est la porte du démon.
Vous devez toujours utiliser BooleanVar ()
pour que chaque case à cocher ait les valeurs "cochée" et "non cochée" par défaut.
BooleanVar ()
est un type spécial qui ne peut stocker que deux choix, "True" ou "False".
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#
#Valeur initiale de chaque élément de la case à cocher
#
Val1 = Tkinter.BooleanVar()
Val2 = Tkinter.BooleanVar()
Val3 = Tkinter.BooleanVar()
Val1.set(False)
Val2.set(True)
Val3.set(False)
CheckBox1 = Tkinter.Checkbutton(text=u"Objet 1", variable=Val1)
CheckBox1.pack()
CheckBox2 = Tkinter.Checkbutton(text=u"Point 2", variable=Val2)
CheckBox2.pack()
CheckBox3 = Tkinter.Checkbutton(text=u"Point 3", variable=Val3)
CheckBox3.pack()
root.mainloop()
En stockant la ** valeur BooleanVar ** avec True ou False dans variable
Vous pouvez spécifier s'il faut cocher ou non.
Une chose à noter ici est que si vous faites variable = True
, vous obtiendrez un ** bug **.
Vous devez toujours saisir des données de type BooleanVar.
Utilisez .get ()
.
Dans l'exemple ci-dessus, «Val1» indique si CheckBox1 est coché ou non.
if Val1.get() == True:
Traitement une fois coché
else:
Traitement non coché
Vous pouvez l'obtenir comme ça.
échantillon
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
import tkMessageBox
root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")
#
#Obtenir le statut de vérification de la case à cocher
#
def check(event):
global Val1
global Val2
global Val3
text = ""
if Val1.get() == True:
text += "L'élément 1 est vérifié\n"
else:
text += "L'élément 1 n'est pas coché\n"
if Val2.get() == True:
text += "L'élément 2 est vérifié\n"
else:
text += "L'élément 2 n'est pas coché\n"
if Val3.get() == True:
text += "L'élément 3 est vérifié\n"
else:
text += "L'élément 3 n'est pas coché\n"
tkMessageBox.showinfo('info',text)
#
#Valeur initiale de chaque élément de la case à cocher
#
Val1 = Tkinter.BooleanVar()
Val2 = Tkinter.BooleanVar()
Val3 = Tkinter.BooleanVar()
Val1.set(False)
Val2.set(True)
Val3.set(False)
CheckBox1 = Tkinter.Checkbutton(text=u"Objet 1", variable=Val1)
CheckBox1.pack()
CheckBox2 = Tkinter.Checkbutton(text=u"Point 2", variable=Val2)
CheckBox2.pack()
CheckBox3 = Tkinter.Checkbutton(text=u"Point 3", variable=Val3)
CheckBox3.pack()
button1 = Tkinter.Button(root, text=u'Obtenez un chèque',width=30)
button1.bind("<Button-1>",check)
button1.pack()
root.mainloop()
↓ Si vous appuyez sur le bouton dans cette situation
Le statut de vérification est acquis.
Ce message de dialogue utilise ce que l'on appelle "tkMessageBox".
import tkMessageBox
Est ajouté,
tkMessageBox.showinfo ('nom du titre', 'contenu')
Il peut être affiché avec.
C'est tout pour cette fois.
Recommended Posts