π§ ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅? Π¨Π°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ π¨
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π½Π° Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Tkinter. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ:
from tkinter import *
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°
window = Tk()
# ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Π² ΠΎΠΊΠ½ΠΎ
label = Label(window, text="ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!")
label.pack()
button = Button(window, text="ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ!")
button.pack()
# ΠΠ°ΠΏΡΡΠΊ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΎΠΊΠ½Π°
window.mainloop()
ΠΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ Ρ Π½Π°Π΄ΠΏΠΈΡΡΡ "ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!" ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ "ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ!". ΠΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Tkinter, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Label (Π½Π°Π΄ΠΏΠΈΡΡ) ΠΈ Button (ΠΊΠ½ΠΎΠΏΠΊΠ°), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ pack() Π΄Π»Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Π² ΠΎΠΊΠ½ΠΎ ΠΈ mainloop() Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΎΠΊΠ½Π°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ. Tkinter ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ Π²ΡΠ±ΠΎΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ². Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ - Tkinter.
Tkinter - ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π² ΠΏΠΈΡΠΎΠ½Π΅. ΠΠ½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΎΠΊΠΎΠ½ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Tkinter
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Tkinter, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Python.
pip install tk
ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Tkinter. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΠΊΠ½ΠΎ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ.
import tkinter as tk
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Tk
window = tk.Tk()
# ΠΠ°Π΄Π°Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°
window.title("ΠΠΎΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°")
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ
def button_click():
label.config(text="ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!")
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ
button = tk.Button(window, text="ΠΠ°ΠΆΠΌΠΈ ΠΌΠ΅Π½Ρ!", command=button_click)
button.pack()
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ΅ΡΠΊΡ
label = tk.Label(window, text="ΠΡΠΈΠ²Π΅Ρ!")
label.pack()
# ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ ΠΎΠΊΠ½Π°
window.mainloop()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ `Tk` ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Tkinter Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΎΠΊΠ½Π°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π·Π°Π΄Π°Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° `title()`. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ `button_click()`, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° `Button`, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π΅Π΅ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ `button_click()`. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ΅ΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° `Label`.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ `pack()`, ΡΡΠΎΠ±Ρ ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ ΠΈΡ Π² ΠΎΠΊΠ½Π΅. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ ΠΎΠΊΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° `mainloop()`, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Tkinter
Tkinter ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠ΅ΠΊ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΏΠΎΠ»Ρ, Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ, ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ `config()`, `bind()`, `place()` ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Tkinter. ΠΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, Π½ΠΎ Tkinter ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π° ΠΏΠΈΡΠΎΠ½Π΅!