π Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ ΠΏΠΎ Python Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . Π§Π°ΡΡΡ 20: ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Tkinter
Π Π°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°Ρ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°Ρ Tkinter, ΠΈΠ·ΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ GUI ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ pack(), place() ΠΈ grid(). Π ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ β 10 ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ GUI Π΄Π»Ρ Python-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.

ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Python ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ GUI Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ:
- Tkinter
- wxPython
- PyQt
- PySide
- Kivy
- PyGTK
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ , Tkinter, Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ Python. ΠΠΈΠ΄ΠΆΠ΅ΡΡ Tkinter Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠ½ΠΎΠ³ΡΡΠΈΠ±Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠΈΠ»ΡΠ½ΠΎΡΡΡΡ β ΡΡΠΎ Π΅Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΉ ΠΌΠΈΠ½ΡΡ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Ρ Tkinter Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ². ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°:
- ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ° Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
- ΠΠΌΠ΅Π΅Ρ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΡ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
- ΠΠΎΠΌΠΈΠΌΠΎ Π±Π°Π·ΠΎΠ²ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π° ΠΌΠΎΡΠ½ΡΡ
Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° β Text (ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ) ΠΈ Canvas (Β«Ρ
ΠΎΠ»ΡΡΒ», Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π»ΡΠ±ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ).
- ΠΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ttk, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π² ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π°Π±ΠΎΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² β Combobox, Notebook, Treeview, Progressbar, Scale ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
- ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΡΠΌ.
- ΠΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
β ΠΏΠΎΡΡΠΎΠΌΡ Π½Π° Π½Π΅ΠΉ ΠΌΡ ΠΈ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Tkinter
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Tkinter Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
- ΠΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ
import tkinter
. - Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ
Tk
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. - (ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) ΠΠ°Π΄Π°ΠΉΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°
title()
ΠΎΠ±ΡΠ΅ΠΊΡΠ°Tk
. - (ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°
geometry()
ΠΎΠ±ΡΠ΅ΠΊΡΠ° Tk. ΠΠ΅ΡΠΎΠ΄geometry()
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅"ΡΠΈΡΠΈΠ½Π°xΠ²ΡΡΠΎΡΠ°"
. - ΠΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄
mainloop()
ΠΎΠ±ΡΠ΅ΠΊΡΠ° Tk, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» GUI ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 250 Π½Π° 250 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Β«ΠΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β»:
import tkinter as tk # Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Tk root = tk.Tk() # ΠΠ°Π΄Π°ΠΉΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π° root.title("ΠΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅") # Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π° root.geometry("250x250") # ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» root.mainloop()
ΠΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π² ΡΠ΅Π½ΡΡΠ΅ ΡΠΊΡΠ°Π½Π°
Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΎΠΊΠ½ΠΎ Tkinter ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅Π½ΡΡΠ΅ ΡΠΊΡΠ°Π½Π°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ:
- ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ winfo_screenwidth() ΠΈ winfo_screenheight() Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ ΡΠΊΡΠ°Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
- ΠΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄ geometry() ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ x ΠΈ y, ΡΠ°Π²Π½ΡΠ΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ ΡΠΊΡΠ°Π½Π° Π·Π° ΠΌΠΈΠ½ΡΡΠΎΠΌ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
import tkinter as tk # Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ root = tk.Tk() # ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ ΡΠΊΡΠ°Π½Π° screen_width = root.winfo_screenwidth() screen_height = root.winfo_screenheight() # ΠΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ window_width = 500 window_height = 300 x = (screen_width // 2) - (window_width // 2) y = (screen_height // 2) - (window_height // 2) root.geometry(f"{window_width}x{window_height}+{x}+{y}") # ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ root.mainloop()
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠΊΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ ΡΠΎΡΠ½ΠΎ Π² ΡΠ΅Π½ΡΡΠ΅ ΡΠΊΡΠ°Π½Π°:
Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π² Tkinter
ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π² Tkinter Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Π½Π° ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ ΠΎΠΊΠ½Π°: pack(), place() ΠΈ grid(). ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ, ΠΈ Π²ΡΠ±ΠΎΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
pack() β ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π΅Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ. ΠΠ½ ΠΏΡΠΎΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΎΡΡΡΡΠΏΠΎΠ², ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ). ΠΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ β Ρ ΠΏΠΎΠΌΠΎΡΡΡ pack() ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠΊΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ²: Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Ρ place().
import tkinter as tk root = tk.Tk() label1 = tk.Label(root, text="ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ pack()") label1.pack() button1 = tk.Button(root, text="ΠΠ°ΠΆΠΌΠΈ!") button1.pack() root.mainloop()
place() β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ ΡΠΎΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° Π² ΠΎΠΊΠ½Π΅. ΠΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ β ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΡΡΡΠ΄Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
import tkinter as tk root = tk.Tk() label1 = tk.Label(root, text="ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ place()") label1.place(x=5, y=50) button1 = tk.Button(root, text="ΠΠ°ΠΆΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ") button1.place(x=50, y=100) root.mainloop()
grid() β ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π΅Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Π² ΡΠ΅ΡΠΊΡ ΠΈΠ· ΡΡΠ΄ΠΎΠ² ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ². Π‘Π°ΠΌΡΠΉ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΠΌΠΎΡΠ½ΡΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΡΠΎΡΡΠΎΡΡΠΈΠ΅ ΠΈΠ· Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΡΠ°Π·Π½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ². Π‘Π»ΠΎΠΆΠ½Π΅Π΅ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, ΡΠ΅ΠΌ pack(), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ².
import tkinter as tk root = tk.Tk() root.title("ΠΡΠΈΠΌΠ΅Ρ grid()") root.geometry("250x250") frame = tk.Frame(root) frame.pack(expand=True) label1 = tk.Label(frame, text="ΠΠΌΡ:") label1.grid(row=0, column=0) entry1 = tk.Entry(frame) entry1.grid(row=0, column=1) label2 = tk.Label(frame, text="Email:") label2.grid(row=1, column=0) entry2 = tk.Entry(frame) entry2.grid(row=1, column=1) button1 = tk.Button(frame, text="ΠΡΠΏΡΠ°Π²ΠΈΡΡ") button1.grid(row=2, column=1) root.update_idletasks() width = root.winfo_width() height = root.winfo_height() x = (root.winfo_screenwidth() // 2) - (width // 2) y = (root.winfo_screenheight() // 2) - (height // 2) root.geometry('{}x{}+{}+{}'.format(width, height, x, y)) root.mainloop()
Π ΡΠ΅Π»ΠΎΠΌ, pack() Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², place() β Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ , Π° grid() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½Π° Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎΡΡΡ, ΠΎΡΠΎΠ±ΠΎΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ°ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ / ΡΡΠΎΠ»Π±ΡΠΎΠ².
Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ
Π§ΡΠΎΠ±Ρ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π½ΡΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ command() ΠΈ bind(), Π½ΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΊ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌ Tkinter ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.
ΠΠ΅ΡΠΎΠ΄ command() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ:
import tkinter as tk root = tk.Tk() def say_hello(): print("ΠΡΠΈΠ²Π΅Ρ!") button1 = tk.Button(root, text="ΠΠΎΠ·Π΄ΠΎΡΠΎΠ²Π°ΠΉΡΡ", command=say_hello) button1.pack() root.mainloop()
ΠΠ΅ΡΠΎΠ΄ bind(), ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ command(), ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ: Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π»ΡΠ±ΡΠΌ ΡΠΎΠ±ΡΡΠΈΠ΅ΠΌ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΌ Π² Π²ΠΈΠ΄ΠΆΠ΅ΡΠ΅ β Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΡΡΠΈ, Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΊΠ»Π°Π²ΠΈΡΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΊΠ½Π° ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅:
import tkinter as tk root = tk.Tk() def say_hello(event=None): print("ΠΡΠΈΠ²Π΅Ρ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° bind()") button1 = tk.Button(root, text="ΠΠ°ΠΆΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ") button1.bind("<Button-1>", say_hello) button1.pack() root.mainloop()
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
import tkinter as tk root = tk.Tk() button1 = tk.Button(root, text="ΠΠ°ΠΆΠΌΠΈ!", command=lambda: print("ΠΡΠΈΠ²Π΅Ρ ΠΎΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ!")) button1.pack() root.mainloop()
Π‘Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
import tkinter as tk from functools import partial root = tk.Tk() def say_hello(name): print(f"ΠΡΠΈΠ²Π΅Ρ, {name}!") button1 = tk.Button(root, text="ΠΠ°ΠΆΠΌΠΈ ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ", command=partial(say_hello, "ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ")) button1.pack() root.mainloop()
ΠΡΠ»ΠΈΡΠ½ΠΎ! ΠΡ ΠΎΡΠ²ΠΎΠΈΠ»ΠΈ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ GUI-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Tkinter.
ΠΡ ΡΠΌΠ΅Π΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠΊΠ½Π°, ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π½Π° Π½ΠΈΡ
Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pack
, place
ΠΈ grid
, ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΈΡ
ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ, ΡΠ²ΡΠ·ΡΠ²Π°Ρ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. Π£ Π²Π°Ρ Π΅ΡΡΡ Π²ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΎΡ ΡΠ΅ΠΎΡΠΈΠΈ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ , ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π ΠΏΠΎΠ»Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΎΠΊΠ° Π²Π°Ρ ΠΆΠ΄ΡΡ 10 ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ Π²Ρ:
- ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ Π΄Π΅ΡΡΡΠΊΠΎΠΌ Π½ΠΎΠ²ΡΡ
Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ²: ΠΎΡ
Progressbar
ΠΈCombobox
Π΄ΠΎTreeview
. - ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ) Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ².
- Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ 10 Π³ΠΎΡΠΎΠ²ΡΡ GUI-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².