Графический интерфейс. Tkinter и Matplotlib

Matplotlib ja Pyplot

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [1, 4, 9, 16]

plt.plot(x, y)
plt.title(„Lineaarne graafik“)
plt.xlabel(„x-telg“)
plt.ylabel(„y-telg“)
plt.show()

Põhilised diagrammitüübid

plot() — Joongraafik
scatter() — Punktdiagramm
bar() — Riba diagramm
hist() — Histogramm
pie() — Tordiagramm

Joonte ja markerite reguleerimine

Joonetüübid (linestyle):

‘-‘ — Täisjoon
‘—‘ — punktiir
‘-.’ — Kriipsjoonega
‘:’ — punktiir
‘ ‘ — Ainult märgid

Markerite tüübid (marker):

‘.’ — Punkt
‘o’ — ring
‘^’ — Kolmnurk
‘s’ — Ruut
‘*’ — Täht
‘D’ — Rombus

Märgistuse seadistus:

suurus või ms — suurus
markerfacecolor või mfc — täitevärv
markeredgecolor või mec — ääre värvus
markeredgewidth või mew — serva paksus.

Pealkirjad ja tekst

plt.title(„Pealkiri“, fontsize=14, fontweight='bold')
plt.xlabel(„x-telg“, fontsize=12)
plt.ylabel(„y-telg“, fontsize=12)
plt.text(2, 10, „Signature“, fontsize=10, color='red')

Värvid ja paletid

Värvinimed: ‘blue’, ‘green’, ‘red’ jne.

Lühikesed sümbolid: „b“, „g“, „r“.

HEX-koodid: ‘#FF5733’

Paletid: ‘viridis’, ‘plasma’, ‘inferno’, ‘cividis’.

Näide:

plt.plot(x, y, color='purple')

Tkinter

GUI programmi põhistruktuur

import tkinter as tk

aken = tk.Tk()
aken.title(„Minu aken“)
aken.geometry(„300x200“)

silt = tk.Label(aken, text=„Tere, maailm!“) # tekst
silt.pack()

aken.mainloop()

Peamised vidinad

VidinadÜlesanneNäide
LabelTeksti silttk.Label(text="...")
ButtonNupptk.Button(command=...)
EntryÜhe reaga tekstivälitk.Entry()
TextMitmerealine tekstivälitk.Text(height=5, width=30)
CheckbuttonMärkeruut (märkeruut)tk.Checkbutton(variable=...)
ListboxValimisnimekiritk.Listbox()

Nupp ja tegevus

def vajutati():
    print(„Nuppu vajutatud“)

tk.Button(aken, text=„Click“, command=vajutati).pack()

Elementide paigutamise meetodid

MeetodKirjeldus
pack()Lihtne, järjekorras
grid()Ruudustik (ridade/veergude kaupa)
place()Täpne positsioneerimine (x/y)

Näide sisendiga vormi kohta

def tervita():
    nimi = sisestus.get()
    silt.configure(text=f"Tere, {nimi}!")

aken = tk.Tk()
tk.Label(aken, text="Sisesta oma nimi:").pack()
sisestus = tk.Entry(aken)
sisestus.pack()
tk.Button(aken, text="Tervita", command=tervita).pack()
silt = tk.Label(aken)
silt.pack()
aken.mainloop()

Sündmuste käsitlemine bind() abil

bind() — seob käsitseja sündmusega.

widget.bind(„event“, handler)

Näide 1: hiireklõps

def klõps(event):
    silt.config(text=f"x={event.x}, y={event.y}")

aken.bind("<Button-1>", klõps)

Näide 2: klahvi vajutamine

def klahv(event):
    silt.config(text=f"Klahv: {event.char}")

aken.bind("<Key>", klahv)

Näide 3: Enter ja Enter

def esita(event):
    tekst = sisestus.get()
    silt.config(text=f"Sisestasid: {tekst}")

sisestus.bind("<Return>", esita)

Sageli kasutatavad sündmused

SündmusKirjeldus
<Button-1>LKM (hiire vasakpoolne nupp)
<Button-3>PCM (parem hiirenupp)
<Double-Button-1>Topeltklõpsake
<Enter>Hiirega üle elemendi libistatud hiirega
<Leave>Hiir on elemendist lahkunud
<Motion>Hiire liikumine vidina sees
<Key>Iga võti
<Return>Enter klahv
<Escape>Põgenemisklahv