Tkinter

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 18 martie 2017; verificările necesită 20 de modificări .

Tkinter (din limba engleză  Tk inter face ) este o bibliotecă grafică multiplatformă bazată pe unelte Tk (distribuită pe scară largă în lumea GNU / Linux și a altor sisteme similare UNIX , portată și pe Microsoft Windows ), scrisă de Steen Lumholt (Steen Lumholt) și Guido van Rossum [1] . Inclus în biblioteca standard Python .

Tkinter este un software gratuit distribuit sub o licență Python [2]  .

Numire

Biblioteca este concepută pentru a organiza dialogurile într-un program folosind o interfață grafică cu ferestre ( GUI ). Biblioteca conține componente grafice comune:

De asemenea, trebuie remarcat faptul că Python are un set de instrumente suplimentare în următoarele module:

Exemplu: programul Hello World

de la import tkinter * rădăcină = Tk () rădăcină . titlu ( "Bună ziua, lume!" ) rădăcină . geometrie ( '300x40' ) def button_clicked (): imprimare ( "Bună ziua, lume!" ) defclose ( ): rădăcină . distruge () rădăcină . renunta () buton = Buton ( rădăcină , text = „Apăsați-mă” , comandă = button_clicked ) butonul . pachet ( umplere = AMBELE ) rădăcină . protocol ( 'WM_DELETE_WINDOW' , close ) rădăcină . bucla principală ()

Analizarea programului

Exemplul de mai sus demonstrează cea mai simplă aplicație GUI din Python. Prima linie a programului importă modulul tkinter (înainte de versiunea 3.1 a limbajului Python, numele modulului tkinter era scris în cod cu majusculă - „Tkinter”):

de la import tkinter *

Ca urmare a importului în spațiul de nume al programului (script), există nume încorporate în Tkinter, care pot fi accesate direct. Trebuie remarcat faptul că importarea în bloc a numelor poate duce la conflictul lor. În plus, interpretului ia mai mult timp să-l găsească pe cel potrivit în lista de nume disponibile.

Următoarea comandă creează fereastra rădăcină (rădăcină) a programului (denumită în continuare fereastra):

rădăcină = Tk ()

Următoarea comandă schimbă titlul ferestrei:

rădăcină . titlu ( "Bună ziua, lume!" )

Următoarea comandă setează dimensiunile ferestrei:

rădăcină . geometrie ( '300x40' )

Următoarea este definiția de gestionare a funcției pentru evenimentul „butonul mouse-ului apăsat”.

def button_clicked (): print ( „Bună lume!” )

Funcția de gestionare a evenimentului „închiderea ferestrei principale”. Oprește bucla principală a aplicației și distruge fereastra principală. Fără el, programul poate fi închis numai dacă procesul de interpret Python este încheiat. Deoarece funcția folosește variabila globală rădăcină, declarația funcției în sine trebuie să vină după declararea variabilei rădăcină.

def close (): rădăcină . distruge () rădăcină . renunta ()

Creați un buton cu textul „Apăsați-mă” și legați-l la funcția de gestionare definită mai sus:

buton = Buton ( rădăcină , text = „Apăsați-mă” , comandă = button_clicked )

„Ambalăm” butonul creat utilizând managerul de aspect al pachetului. fill=BOTH (de asemenea fill="both") îi spune butonului să ocupe tot spațiul disponibil (lățime și înălțime) pe widget-ul rădăcină părinte:

butonul . pachet ( umplere = AMBELE )

Legați evenimentul de închidere a ferestrei principale cu funcția de gestionare de închidere:

rădăcină . protocol ( 'WM_DELETE_WINDOW' , close )

Începem bucla principală a aplicației:

rădăcină . bucla principală ()

Ca urmare a apăsării butonului, mesajul „Hello, World!” va fi afișat în consolă. Mesajul va fi afișat de fiecare dată când este apăsat butonul.

Vezi și

Note

  1. Matt Conway, Tkinter Life Preserver Arhivat 31 mai 2016 la Wayback Machine 
  2. Tkinter Overview Arhivat 13 noiembrie 2013.  (Engleză)

Literatură

  • John E Grayson. Programare Python și Tkinter. - Publicaţiile Manning, 1999. - 658 p. — ISBN 9781884777813 .
  • Suzi R.A. Crearea de aplicații cu o interfață grafică de utilizator // Limbajul de programare Python: un tutorial. - M . : Intuit, Binom. Laboratorul de cunoștințe, 2006. - 328 p. — ISBN 5-9556-0058-2 .

Link -uri