Versuchen Sie es mit Pythons Tkinter

Ich habe immer mehr Pythons Tkinter verwendet, aber ich hatte nicht viele Websites mit den gewünschten Informationen (mein Favorit), daher fasse ich sie zusammen.

Als ich eine Lernsitzung über Tkinter hatte, kamen außerdem Materialien heraus, die mit dem Python 3-System erstellt wurden Wenn Sie interessiert sind, bitte. https://nnahito.gitbooks.io/tkinter/content/

* Einführung

Ich bin eine prozedurale Person. Ich benutze überhaupt keine Objektorientierung. Meine Lieblingssprachen sind BASIC und Perl, die vom Aussterben bedroht sind. Objektorientiert ist also das BesteMVC Großartig! !! Bitte beachten Sie, dass ich denke, dass der Schreibstil denen, die angeblich sind, unbekannt oder unbekannt ist.

* Was ist Tkinter überhaupt?

Es ist ein ** Toolkit, mit dem Sie ** GUI in Python erstellen können. Auf diese Weise können Sie Python-Skripte im GUI-Format ausführen.

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter

root = Tkinter.Tk()
root.mainloop()

スクリーンショット 2015-02-21 15.35.22.png

* Basic

Es gibt unzählige grundlegende Grammatiken für Python. Finden Sie also Ihre bevorzugte Kommentarseite. Hier werde ich den Teil aufgreifen, auf den ich in Tkinter gestoßen bin.

Erstens ist das Grundformat wie folgt.

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

root.mainloop()

Dadurch wird ein 400px * 300px-Fenster geöffnet.

root.title (u" Fenstername ") Dies bestimmt die Notation der Fenstertitelleiste

root.geometry (" horizontal x vertikal ") Dies bestimmt die Fenstergröße. Schreiben Sie den numerischen Wert in das untere X (x), z. B. horizontale Länge x vertikale Länge.

Beachten Sie, dass die Verarbeitung von Software-Ausführungsinhalten erfolgt root = Tkinter.Tk() Wann root.mainloop() Es wird dazwischen beschrieben.

Was kann Tkinter ausdrücken?

Details finden Sie auf dieser Seite, aber es ist detailliert zusammengefasst.

スクリーンショット 2015-02-21 5.19.11.png

Ich brauchte nur

Etikette

Verwenden Sie die folgenden Etiketten. Label (text = u'label name ') Wenn Sie den Teil "Etikettenname" ändern, ändert sich der Inhalt des Etiketts.

Unten ist ein Beispiel.

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#Etikette
Static1 = Tkinter.Label(text=u'test')
Static1.pack()

root.mainloop()

スクリーンショット 2015-02-21 5.28.25.png

Static1 = Tkinter.Label(text=u'test') Static1 von ist das Handle des Etiketts. (Das heißt, ich habe ein Handle in die Variable gesetzt) Verwenden Sie außerdem "Static1.pack ()", um das Handle im Fenster-Widget zu speichern. Wenn Sie es zerlegen, wird es automatisch ausgerichtet und im Fenster platziert.

Wenn Sie es irgendwo platzieren möchten, Static1.place (x = x Koordinaten, y = y Koordinaten) Verwenden Sie "Ort (x = x-Koordinate, y = y-Koordinate)" wie in.

Für Widgets wie Beschriftungen gibt es außerdem einige allgemeine Optionen. Es wird in einem Tabellenformat oben in der Mitte der vorherigen Seite zusammengefasst (Easy Python / Tkinter). Beispielsweise ist es möglich, die Hintergrundfarbe und die Textfarbe des Etiketts zu ändern.

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#Etikette
Static1 = Tkinter.Label(text=u'test', foreground='#ff0000', background='#ffaacc')
Static1.pack()

root.mainloop()

Optionen sind Static1 = Tkinter.Label(text=u'test', foreground='#ff0000', background='#ffaacc') Es ist möglich, wie folgt hinzuzufügen.

スクリーンショット 2015-02-21 5.36.59.png

Wenn Sie beispielsweise place verwenden, sieht es außerdem so aus.

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#Etikette
Static1 = Tkinter.Label(text=u'test', foreground='#ff0000', background='#ffaacc')
Static1.place(x=150, y=228)

root.mainloop()

スクリーンショット 2015-02-21 5.40.42.png

Sie können sehen, dass sich das Etikett an eine beliebige Position bewegt hat. Ich werde es so benutzen.

* Eintrag (1 Zeile Eingabefeld)

Erstellen Sie ein einzeiliges Eingabefeld "Eintrag", das keine Zeilenumbrüche zulässt. Schreiben Sie den Code als "EditBox = Tkinter.Entry ()".

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#Eintrag
EditBox = Tkinter.Entry()
EditBox.pack()

root.mainloop()

So geben Sie Zeichen von Anfang an ein

Zeichen von Anfang an mit Eingabe eingeben Verwenden Sie insert (Tkinter.END," string to add "). Dies fügt eine "zusätzliche Zeichenfolge" in die letzte Zeile ein. Sie können an jeder Stelle eine Zeichenfolge einfügen, aber ich werde die Erklärung hier weglassen. Einzelheiten finden Sie auf dieser Website

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#Eintrag
EditBox = Tkinter.Entry()
EditBox.insert(Tkinter.END,"Zeichenfolge zum Einfügen")
EditBox.pack()

root.mainloop()

スクリーンショット 2015-02-21 15.09.16.png

Eintragsgröße

Sie können auch die Größe des Eintrags angeben. Es kann durch Tkinter.Entry (width = size) bestimmt werden.

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#Eintrag
EditBox = Tkinter.Entry(width=50)
EditBox.insert(Tkinter.END,"Zeichenfolge zum Einfügen")
EditBox.pack()

root.mainloop()

スクリーンショット 2015-02-21 15.11.35.png Ich habe versucht, es größer zu machen.

Holen Sie sich den Inhalt des Eintrags

Verwenden Sie .get (), um den Inhalt des Eintrags abzurufen.

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#Eintrag
EditBox = Tkinter.Entry(width=50)
EditBox.insert(Tkinter.END,"Zeichenfolge zum Einfügen")
EditBox.pack()

#Hier wird der Inhalt des Eintrags als Wert eingegeben
value = EditBox.get()

root.mainloop()

Löschen Sie den Inhalt des Eintrags

Es kann als "EditBox.delete (0, Tkinter.END)" angegeben werden. (.delete(0, Tkinter.END)) Sie können es von jedem Ort löschen, aber ich werde es hier weglassen. Einzelheiten finden Sie auf dieser Website

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#Eintrag
EditBox = Tkinter.Entry(width=50)
EditBox.insert(Tkinter.END,"Zeichenfolge zum Einfügen")
EditBox.pack()

#Löschen Sie den Inhalt des Eintrags
EditBox.delete(0, Tkinter.END)

root.mainloop()

スクリーンショット 2015-02-21 15.15.02.png

Da ich dem Eintrag Zeichen hinzugefügt und sie so gelöscht habe, wie sie waren, bedeutet dies, dass überhaupt nichts geschrieben wurde. Ich werde im nächsten "Button" -Element ein Beispiel geben, das etwas einfacher zu verstehen ist.

* Taste

Schaltflächen können mit "Schaltfläche" erstellt werden.

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#Taste
Button = Tkinter.Button(text=u'Es ist ein Knopf')
Button.pack()

root.mainloop()

スクリーンショット 2015-02-21 15.19.02.png

.Button (text = u'Zeichen, das auf der Schaltfläche angezeigt werden soll ')

Geben Sie die Breite der Schaltfläche an

Es kann durch "width = width" angegeben werden.

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#Taste
Button = Tkinter.Button(text=u'Es ist ein Knopf', width=50)
Button.pack()

root.mainloop()

スクリーンショット 2015-02-21 15.21.38.png

Wenn Sie die Taste drücken, wird eine Verarbeitung ausgeführt

Schaltflächen bilden grundsätzlich Aktionen in Funktionen (def :). Lassen Sie uns etwas erstellen, das den Inhalt des vorherigen Eintrags durch Drücken einer Schaltfläche löscht.

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#
#Wird hier aufgerufen, wenn die Taste gedrückt wird
#
def DeleteEntryValue(event):
  #Löschen Sie den Inhalt des Eintrags
  EditBox.delete(0, Tkinter.END)


#Eintrag
EditBox = Tkinter.Entry(width=50)
EditBox.insert(Tkinter.END,"Zeichenfolge zum Einfügen")
EditBox.pack()

#Taste
Button = Tkinter.Button(text=u'Es ist ein Knopf', width=50)
Button.bind("<Button-1>",DeleteEntryValue) 
#Links Klick (<Button-1>), Binden, um die DeleteEntryValue-Funktion aufzurufen
Button.pack()

root.mainloop()

.bind (" <Button-1> ", DeleteEntryValue) ist .bind (" Klick auf Verarbeitungsnummer ", Funktion oder Aktion zum Aufrufen) Es ist wie folgt konfiguriert. Wenn Sie nun auf die Schaltfläche klicken, wird die angegebene Funktion aufgerufen. Klicken Sie auf "" "" ist ein Radklick Klicken Sie mit der rechten Maustaste auf "" ist.

Neben Klicks gibt es noch andere Ereignisse, die ich hier jedoch nicht anfassen werde. Weitere Informationen finden Sie auf dieser Website

スクリーンショット 2015-02-21 15.25.41.png

Wenn Sie die Taste ↓ drücken, verschwinden die Zeichen

スクリーンショット 2015-02-21 15.26.07.png

Natürlich Platz

Eintrag und Button auch. Sie können es mit ".place (x = hoge, y = hoge)" anstelle von ".pack ()" angeben.

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#
#Wird hier aufgerufen, wenn die Taste gedrückt wird
#
def DeleteEntryValue(event):
  #Löschen Sie den Inhalt des Eintrags
  EditBox.delete(0, Tkinter.END)


#Eintrag
EditBox = Tkinter.Entry(width=30)
EditBox.insert(Tkinter.END,"Zeichenfolge zum Einfügen")
EditBox.place(x=5, y=10)


#Taste
Button = Tkinter.Button(text=u'Es ist ein Knopf', width=25)
Button.bind("<Button-1>",DeleteEntryValue)
Button.place(x=105, y=60)

root.mainloop()

スクリーンショット 2015-02-21 15.47.15.png

* CheckBox

Dieser Typ war ziemlich nervig. Also möchte ich es einzeln in kleine Stücke teilen. In Tkinter scheint es, dass es Check Check anstelle von Check Box heißt.

Erstellen Sie eine CheckBox

Verwenden Sie .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()

スクリーンショット 2015-02-21 15.52.43.png

Geben Sie der CheckBox einen Artikelnamen

Machen Sie es wie "CheckBox = Tkinter.Checkbutton (text = u" Item Name ")".

#!/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"Gegenstand 1")
CheckBox1.pack()

CheckBox2 = Tkinter.Checkbutton(text=u"Punkt 2")
CheckBox2.pack()

CheckBox3 = Tkinter.Checkbutton(text=u"Punkt 3")
CheckBox3.pack()

root.mainloop()

スクリーンショット 2015-02-21 15.54.36.png

Werte von Anfang an aktiviert und deaktiviert haben

Von hier aus ist das Dämonentor. Sie müssen immer BooleanVar () verwenden, damit jedes Kontrollkästchen standardmäßig die Werte "aktiviert" und "nicht aktiviert" hat. BooleanVar () ist ein spezieller Typ, der nur zwei Auswahlmöglichkeiten speichern kann, "True" oder "False".

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")

#
#Anfangswert jedes Kontrollkästchens
#
Val1 = Tkinter.BooleanVar()
Val2 = Tkinter.BooleanVar()
Val3 = Tkinter.BooleanVar()

Val1.set(False)
Val2.set(True)
Val3.set(False)

CheckBox1 = Tkinter.Checkbutton(text=u"Gegenstand 1", variable=Val1)
CheckBox1.pack()

CheckBox2 = Tkinter.Checkbutton(text=u"Punkt 2", variable=Val2)
CheckBox2.pack()

CheckBox3 = Tkinter.Checkbutton(text=u"Punkt 3", variable=Val3)
CheckBox3.pack()

root.mainloop()

Durch Speichern des ** BooleanVar-Werts ** mit True oder False in variable Sie können angeben, ob überprüft werden soll oder nicht.

Eine Sache, die Sie hier beachten sollten, ist, dass Sie einen ** Fehler ** erhalten, wenn Sie variable = True ausführen. Sie müssen immer Daten vom Typ BooleanVar eingeben.

スクリーンショット 2015-02-21 15.59.59.png

Holen Sie sich, ob CheckBox aktiviert ist

Verwenden Sie .get (). Im obigen Beispiel gibt "Val1" an, ob CheckBox1 aktiviert ist oder nicht.

if Val1.get() == True:
Verarbeitung bei Prüfung
else:
Verarbeitung, wenn nicht aktiviert

Sie können es so bekommen.

Stichprobe

#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import Tkinter
import tkMessageBox


root = Tkinter.Tk()
root.title(u"Software Title")
root.geometry("400x300")


#
#Ruft den Kontrollstatus des Kontrollkästchens ab
#
def check(event):
  global Val1
  global Val2
  global Val3
  
  text = ""
  
  if Val1.get() == True:
    text += "Punkt 1 ist geprüft\n"
  else:
    text += "Punkt 1 ist deaktiviert\n"
  
  if Val2.get() == True:
    text += "Punkt 2 ist geprüft\n"
  else:
    text += "Punkt 2 ist deaktiviert\n"
  
  if Val3.get() == True:
    text += "Punkt 3 ist geprüft\n"
  else:
    text += "Punkt 3 ist deaktiviert\n"
  
  tkMessageBox.showinfo('info',text)


#
#Anfangswert jedes Kontrollkästchens
#
Val1 = Tkinter.BooleanVar()
Val2 = Tkinter.BooleanVar()
Val3 = Tkinter.BooleanVar()

Val1.set(False)
Val2.set(True)
Val3.set(False)

CheckBox1 = Tkinter.Checkbutton(text=u"Gegenstand 1", variable=Val1)
CheckBox1.pack()

CheckBox2 = Tkinter.Checkbutton(text=u"Punkt 2", variable=Val2)
CheckBox2.pack()

CheckBox3 = Tkinter.Checkbutton(text=u"Punkt 3", variable=Val3)
CheckBox3.pack()


button1 = Tkinter.Button(root, text=u'Holen Sie sich Scheck',width=30)
button1.bind("<Button-1>",check)
button1.pack()

root.mainloop()

スクリーンショット 2015-02-21 16.11.23.png

↓ Wenn Sie in dieser Situation die Taste drücken

スクリーンショット 2015-02-21 16.11.26.png

Der Prüfstatus wird erfasst.

Diese Dialognachricht verwendet die sogenannte "tkMessageBox". import tkMessageBox Hinzugefügt, tkMessageBox.showinfo ('Titelname', 'Inhalt') Es kann mit angezeigt werden.

Das war's für diese Zeit.

Recommended Posts

Versuchen Sie es mit Pythons Tkinter
Versuchen Sie es mit Tkinter
Versuchen Sie es mit dem Feed-Parser von Python.
Versuchen Sie, Pythons networkx mit AtCoder zu verwenden
Versuchen Sie es mit Docker-Py
Versuchen Sie es mit einem Ausstecher
Versuchen Sie es mit PDFMiner
Versuchen Sie es mit Geopandas
Versuchen Sie es mit Selen
Versuchen Sie es mit pandas.DataFrame
Versuchen Sie es mit Django-Swiftbrowser
Versuchen Sie es mit matplotlib
Versuchen Sie es mit tf.metrics
Versuchen Sie es mit PyODE
Versuchen Sie, die Kamera mit Pythons OpenCV zu verwenden
Versuchen Sie es mit virtualenv (virtualenvwrapper)
[Azure] Versuchen Sie, Azure-Funktionen zu verwenden
Versuchen Sie es jetzt mit virtualenv
Versuchen Sie es mit W & B.
Versuchen Sie es mit Django templates.html
[Kaggle] Versuchen Sie es mit LGBM
Versuchen Sie es mit Tweepy [Python2.7]
Versuchen Sie es mit Pytorchs collate_fn
Versuchen Sie, mit Tkinter in Python dynamisch einen Checkbutton zu erstellen
Umgebungsvariablen bei Verwendung von Tkinter
[Python] Versuchen Sie, Tkinters Leinwand zu verwenden
Versuchen Sie es mit Jupyters Docker-Image
Versuchen Sie es mit Scikit-Learn (1) - K-Clustering nach Durchschnittsmethode
Versuchen Sie die Funktionsoptimierung mit Hyperopt
Versuchen Sie es mit matplotlib mit PyCharm
Versuchen Sie es mit Azure Logic Apps
Versuchen Sie es mit Kubernetes Client -Python-
[Kaggle] Versuchen Sie es mit xg boost
Versuchen Sie es mit OpenCV unter Windows
Versuchen Sie, Jupyter Notebook dynamisch zu verwenden
Versuchen Sie es mit AWS SageMaker Studio
Versuchen Sie es mit SQLAlchemy + MySQL (Teil 1)
Versuchen Sie es mit SQLAlchemy + MySQL (Teil 2)
Versuchen Sie es mit der Vorlagenfunktion von Django
Versuchen Sie es mit der PeeringDB 2.0-API
Versuchen Sie es mit der Entwurfsfunktion von Pelican
Senden Sie E-Mails mit Pythons smtplib
Versuchen Sie es mit pytest-Overview und Samples-
Versuchen Sie es mit Folium mit Anakonda
Versuchen Sie es mit der Admin-API von Janus Gateway
[Statistik] [R] Versuchen Sie, die Teilungspunktregression zu verwenden.
Versuchen Sie es mit Spyder, das in Anaconda enthalten ist
Versuchen Sie es mit Pillow auf iPython (Teil 1)
Erstellen Sie mit tkinter eine Python-GUI
Versuchen Sie es mit der Pleasant-API (Python / FastAPI).
Versuchen Sie, die Remote-Debugging-Funktion von PyCharm zu verwenden
Versuchen Sie es mit ArUco mit Raspberry Pi
Versuchen Sie es mit billigem LiDAR (Camsense X1)
[Sakura-Mietserver] Versuchen Sie es mit einer Flasche.
Versuchen Sie, die Datenbank mit Peewee von ORM of Python (Version August 2019) zu betreiben.
Versuchen Sie es mit Pillow auf iPython (Teil 3).
Stärkung des Lernens 8 Versuchen Sie, die Chainer-Benutzeroberfläche zu verwenden
Versuchen Sie, Statistiken mit e-Stat abzurufen
Versuchen Sie es mit der Aktions-API von Python argparse