Tkinter
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 18 mars 2017; kontroller kräver
20 redigeringar .
Tkinter (från engelska Tk inter face ) är ett plattformsoberoende händelsedrivet grafikbibliotek baserat på Tk -verktyg (distribuerat brett i världen av GNU / Linux och andra UNIX -liknande system, även portat till Microsoft Windows ), skrivet av Steen Lumholt (Steen Lumholt) och Guido van Rossum [1] . Ingår i Pythons standardbibliotek .
Tkinter är fri programvara som distribueras under en Python
-licens [2] .
Utnämning
Biblioteket är utformat för att organisera dialoger i ett program med hjälp av ett grafiskt gränssnitt ( GUI ).
Biblioteket innehåller vanliga grafiska komponenter:
- Toplevel/Tk - Toplevel-fönster (root-widget).
- Ram - Ram. Innehåller andra visuella komponenter som används för att gruppera widgets.
- Etikett - Etikett. Visar lite text eller grafik.
- Inmatning - En rad textinmatningsfält.
- Text – Ett formaterat textinmatningsfält. Låter dig visa, redigera och formatera text med olika stilar, samt bädda in bilder och fönster i texten.
- Canvas - Canvas. Kan användas för att visa grafiska primitiver som rektanglar, ellipser, linjer samt text, bilder och fönster.
- knapp En enkel knapp för att utföra ett kommando och andra åtgärder.
- Radioknapp - Switch. Representerar ett av de alternativa värdena för någon variabel. Arbetar vanligtvis i grupp. När användaren väljer ett alternativ avmarkeras det tidigare valda objektet i samma grupp.
- Kontrollknapp - Kryssruta. Liknar en radioknapp, men med flera valmöjligheter, vilket ger en separat variabel för varje widgetinstans.
- Skala — Skala med ett skjutreglage. Låter dig ställa in ett numeriskt värde genom att flytta reglaget.
- Listbox - Lista. Visar en lista från vilken användaren kan välja ett eller flera objekt.
- Rullningslist - Rullningslist. Kan användas tillsammans med några andra komponenter för att rulla dem.
- Meny - Meny. Fungerar för att organisera popup- (popup) och rullgardinsmenyer (pulldown).
- Menyknapp - Menyknapp. Används för att organisera en rullgardinsmeny.
- Meddelande - Meddelande. Liknar Label, men låter dig linda långa rader och enkelt ändra storlek.
- AlternativMeny
- Spinbox
- LabelFrame
- PanedWindow
Det bör också noteras att Python har en uppsättning ytterligare verktyg i följande moduler:
- Duk
- Dialog
- FileDialog
- FixTk
- rullad text
- enkel dialog
- Tix
- Tkkonstanter
- Tkdnd
- tkColorChooser
- tkCommonDialog
- tkFileDialog
- tkFont
- tkMessageBox
- tkSimpleDialog
- sköldpadda
Exempel: Hello World-program
från tkinter import *
root = Tk ()
rot . titel ( "Hej världen!" )
rot . geometri ( '300x40' )
def button_clicked ():
print ( "Hej världen!" )
defclose ( ):
rot . förstöra ()
rot . sluta ()
button = Button ( root , text = "Press Me" , command = button_clicked )
knappen . pack ( fyll = BÅDA )
rot . protokoll ( 'WM_DELETE_WINDOW' , stäng )
rot . huvudslinga ()
Parsar programmet
Ovanstående exempel visar den enklaste GUI-applikationen i Python. Den första raden i programmet importerar tkinter-modulen (före version 3.1 av Python-språket skrevs tkinter-modulens namn i kod med stor bokstav - "Tkinter"):
från tkinter import *
Som ett resultat av import i programmets namnutrymme (skript) finns det namn inbyggda i Tkinter, som kan nås direkt. Det bör noteras att massimport av namn kan leda till konflikt mellan dem. Dessutom tar det längre tid för tolken att hitta rätt i listan över tillgängliga namn.
Följande kommando skapar programmets rotfönster (nedan kallat fönstret):
root = Tk ()
Följande kommando ändrar fönstrets titel:
rot . titel ( "Hej världen!" )
Följande kommando ställer in fönsterdimensionerna:
rot . geometri ( '300x40' )
Följande är definitionen av funktionshanteraren för händelsen "musknapp nedtryckt".
def button_clicked ():
print ( "Hello World!" )
Funktionshanterare av händelsen "stänger huvudfönstret". Det stoppar programmets huvudslinga och förstör huvudfönstret. Utan det kan programmet stängas endast om Python-tolkprocessen avslutas. Eftersom funktionen använder den globala variabeln rot, måste deklarationen av själva funktionen komma efter deklarationen av rotvariabeln.
def close ():
rot . förstöra ()
rot . sluta ()
Skapa en knapp med texten "Press Me" och bind den till den ovan definierade hanterarfunktionen:
button = Button ( root , text = "Press Me" , command = button_clicked )
Vi "packar" den skapade knappen med hjälp av packlayouthanteraren. fill=BOTH (även fill="both") talar om för knappen att ta upp allt tillgängligt utrymme (bredd och höjd) på den överordnade rotwidgeten:
knappen . pack ( fyll = BÅDA )
Bind stängningshändelsen för huvudfönstret med stängningshanterarens funktion:
rot . protokoll ( 'WM_DELETE_WINDOW' , stäng )
Vi startar applikationens huvudslinga:
rot . huvudslinga ()
Som ett resultat av att du trycker på knappen kommer meddelandet "Hello, World!" att visas i konsolen. Meddelandet kommer att visas varje gång knappen trycks ned.
Se även
Anteckningar
- ↑ Matt Conway, Tkinter Life Preserver Arkiverad 31 maj 2016 på Wayback Machine
- ↑ Tkinter-översikt Arkiverad 13 november 2013. (Engelsk)
Litteratur
- John E Grayson. Python och Tkinter-programmering. - Manning Publications, 1999. - 658 s. — ISBN 9781884777813 .
- Suzi R.A. Skapa applikationer med ett grafiskt användargränssnitt // The Python Programming Language: A Tutorial. - M . : Intuit, Binom. Kunskapslaboratoriet, 2006. - 328 sid. — ISBN 5-9556-0058-2 .
Länkar
Verktygssatser (uppsättningar) med GUI-element |
---|
låg nivå |
|
---|
hög nivå | Amiga OS |
|
---|
MacOS och macOS |
- Kakao
- macapp
- MacZoop
- Kraftverk
|
---|
Windows |
|
---|
UNIX , under X |
|
---|
Över plattform _ | Flash-baserad |
|
---|
Baserat på XML, AJAX eller SVG |
|
---|
Baserat på Java |
|
---|
Baserat på C eller C++ |
|
---|
Baserad på Common Lisp |
|
---|
Baserad på Pascal |
|
---|
Baserat på Python |
|
---|
Baserat på Objective-C |
|
---|
|
---|
|
---|