Python clasa a 9-a · Manual Python
Laborator Python
LECȚIE · CAPITOLUL 5

5.1. Prima interfață grafică

Tk, ferestre și bucla principală

FEREASTRĂ
→
CONFIGURARE
→
MAINLOOP
→
TESTARE
01
OBIECTIVE

La finalul lecției vei putea...

01

Distingi consola de GUI

Explici diferența dintre comunicarea prin text și o interfață grafică.

02

Creezi fereastra

Folosești tk.Tk() pentru fereastra principală.

03

Configurezi fereastra

Stabilești titlul cu title() și dimensiunea cu geometry().

04

Menții aplicația activă

Explici rolul lui mainloop() și testezi o aplicație minimală.

✓
Checkpoint

Ce instrucțiune menține aplicația Tkinter activă și pregătită să primească acțiuni?

02
EXPLICAȚIE

De la consolă la GUI

De la consolă la interfața grafică

În lecțiile anterioare am folosit input() și print(). Într-o interfață grafică utilizatorul vede o fereastră și interacționează cu elemente vizuale.

Tkinter și fereastra principală

Tkinter este biblioteca Python folosită pentru realizarea unor interfețe grafice simple. O aplicație începe, în mod uzual, prin import tkinter as tk și prin crearea ferestrei cu tk.Tk().

Consolă

Datele sunt introduse și rezultatele sunt afișate ca text.

GUI

Comunicarea se realizează printr-o fereastră și componente vizuale.

Titlul și dimensiunea

root.title("Prima mea aplicație") stabilește titlul, iar root.geometry("500x300") stabilește dimensiunea inițială.

Bucla principală

root.mainloop() pornește bucla principală: aplicația rămâne activă și poate reacționa la acțiunile utilizatorului.

Observă ordinea

1

import

pregătim Tkinter

2

Tk()

creăm fereastra

3

title()

stabilim titlul

4

geometry()

stabilim dimensiunea

5

mainloop()

pornim aplicația

✓
Checkpoint

Dacă schimbi doar 500x300 în 700x400, ce proprietate a ferestrei se schimbă?

03
EXEMPLU INTUITIV

Construim fereastra pas cu pas

O aplicație grafică are nevoie mai întâi de o fereastră. Gândește-te la ea ca la o foaie pe care vom așeza ulterior componentele. Fiecare instrucțiune are un rol precis.

Apasă pașii în ordinea corectă

Alege, pe rând, instrucțiunea care trebuie executată.

Începe cu crearea ferestrei.

Vezi efectul configurării


04
PYTHON

Construim prima fereastră

Aplicația minimală

import tkinter as tk

root = tk.Tk()
root.title("Prima mea aplicație")
root.geometry("500x300")
root.mainloop()

root păstrează obiectul ferestrei. Metodele title() și geometry() configurează fereastra, iar mainloop() pornește bucla principală.

Schimbă configurația

Ce se schimbă?

Alege valori și construiește codul. Vei vedea exact ce argumente se modifică.

05
ALGORITM / PSEUDOCOD

Structura aplicației minimale

ALGORITM AgendaElevului
    importă Tkinter
    creează fereastra principală
    setează titlul „Agenda elevului”
    setează dimensiunea 700x400
    pornește bucla principală
SFÂRȘIT ALGORITM
06
ATENȚIE!

Erori frecvente

O singură fereastră principală

În aplicația minimală folosim, în mod obișnuit, o singură creare prin tk.Tk().

Nu uita mainloop()

Fără bucla principală, aplicația nu funcționează ca o interfață grafică interactivă completă.

geometry() este text

Dimensiunea are forma „lățimexînălțime”, de exemplu "500x300".

07
EXEMPLU REZOLVAT

Agenda elevului

Problemă

Realizează aplicația grafică „Agenda elevului”, cu o fereastră de 700×400 pixeli.

Ideea de rezolvare

Creăm fereastra, stabilim titlul și dimensiunea, apoi pornim bucla principală.

Analiză

Intrare: nu există date introduse. Ieșire: o fereastră grafică. Observație: aplicația trebuie să rămână deschisă.

Algoritm/pseudocod

creează fereastra
setează titlul
setează dimensiunea 700x400
pornește bucla principală

Python

import tkinter as tk
root = tk.Tk()
root.title("Agenda elevului")
root.geometry("700x400")
root.mainloop()

Urmărirea variabilelor

PasInstrucțiuneStarea aplicației
1root = tk.Tk()Există fereastra principală.
2title()Titlul devine „Agenda elevului”.
3geometry()Dimensiunea inițială devine 700×400.
4mainloop()Aplicația intră în bucla principală.

Testare

TestAcțiuneRezultat așteptat
Caz normalExecutarea programuluiSe deschide fereastra cu titlul și dimensiunea cerute.
Caz particularÎnchiderea ferestreiAplicația se închide normal.
Valoare relevantăSchimbarea dimensiunii în 300x200Fereastra pornește cu noua dimensiune.
Justificarea soluției: programul creează exact fereastra cerută, îi stabilește titlul și dimensiunea și pornește bucla principală.
08
EXERCIȚII DE BAZĂ

Aplică direct

  1. Creează o fereastră cu titlul „Laborator Python” și dimensiunea 400x250.
  2. Creează o fereastră cu titlul „Probleme de informatică” și dimensiunea 800x500.
  3. Realizează trei variante ale aceleiași aplicații, modificând numai titlul și dimensiunea.
  4. Explică în comentarii rolul instrucțiunilor import tkinter as tk, tk.Tk(), title(), geometry() și mainloop().
  5. Scrie o aplicație cu fereastra de 640x360, intitulată „Proiectul meu”.
09
EXERCIȚII DE APROFUNDARE

Analizează și extinde

  1. Analizează ce se întâmplă dacă elimini mainloop() și explică de ce aplicația are nevoie de bucla principală.
  2. Realizează o aplicație „Panou de control” cu dimensiunea 900x500 și formulează trei cerințe care ar putea fi implementate în lecțiile următoare.
  3. Compară conceptual un program de consolă care se încheie după print() cu o aplicație Tkinter care ajunge la mainloop().
  4. Propune o dimensiune potrivită pentru o aplicație de tip formular și justifică alegerea.
10
VERIFICARE

Quiz final

1. Ce bibliotecă folosim pentru a construi interfețe grafice în această lecție?

2. Ce creează instrucțiunea tk.Tk()?

3. Ce face root.title("Laborator")?

4. Ce stabilește root.geometry("500x300")?

5. De ce apelăm root.mainloop()?

6. Care este ordinea de bază corectă?

11
MINI-PROIECT

Fereastra „Centrul de studiu”

MISIUNE

Fereastra „Centrul de studiu”

Realizează o aplicație grafică ce reprezintă fereastra principală a unui mic centru de studiu. Fereastra trebuie să aibă titlul „Centrul de studiu” și o dimensiune aleasă de tine, dar suficient de mare pentru componentele care vor fi adăugate ulterior.

  1. folosește tkinter importat sub numele tk;
  2. creează o singură fereastră principală;
  3. stabilește titlul și dimensiunea;
  4. pornește bucla principală;
  5. adaugă în comentarii două idei de componente grafice pentru o versiune viitoare.

Cerințe

tkinter ca tk01
o singură fereastră02
titlu + dimensiune03
mainloop()04
două idei viitoare05

Ai terminat lecția?

Verifică titlul, dimensiunea, existența unei singure ferestre și apelul mainloop().