π§ ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»ΠΈΠΊΠ΅Ρ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ tkinter: Π»Π΅Π³ΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ»ΠΈΠΊΠ΅Ρ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ tkinter?
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠΊΠ΅ΡΠ° Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ tkinter, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π³ΠΎΠ². ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import tkinter as tk
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΡ ΠΊΠ»ΠΈΠΊΠ°
def click_handler():
# ΠΠ΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅
pass
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ
window = tk.Tk()
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ
button = tk.Button(window, text="ΠΠ»ΠΈΠΊΠ½ΠΈ ΠΌΠ΅Π½Ρ", command=click_handler)
button.pack()
# ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π³Π»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ
window.mainloop()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ tkinter ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ click_handler, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΊΠ»ΠΈΠΊΠ°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ tk.Button, ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΡΠ΅ΠΊΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π³Π»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ window.mainloop(), ΡΡΠΎΠ±Ρ ΠΎΠΊΠ½ΠΎ ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π»ΠΎ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ.
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΊΠ΅ΡΠ° Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ tkinter. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ click_handler Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅.
Π£Π΄Π°ΡΠΈ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠ»ΠΈΠΊΠ΅ΡΠ°!
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ»ΠΈΠΊΠ΅Ρ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ tkinter
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π² ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΡΡΠ°ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»ΠΈΠΊΠ΅Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ tkinter Π½Π° ΡΠ·ΡΠΊΠ΅ Python! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠ°Π³ΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠΊΠ΅ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π»ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.
Π¨Π°Π³ 1: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ tkinter, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Python. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Python Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Ρ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° tkinter. ΠΡΠ»ΠΈ Π΅Π΅ Π½Π΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
pip install tk
Π¨Π°Π³ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ tkinter, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠΊΠ΅ΡΠ°. ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π°Ρ ΠΊΠ»ΠΈΠΊΠ΅Ρ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ Tk ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ tkinter Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π°:
from tkinter import *
root = Tk()
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
root.geometry("400x400")
root.title("ΠΠ»ΠΈΠΊΠ΅Ρ")
Π¨Π°Π³ 3: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠΊΠΎΠ². ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ Button ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ tkinter Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ:
button = Button(root, text="ΠΠ»ΠΈΠΊΠ½ΠΈ ΠΌΠ΅Π½Ρ!")
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΡΠ²Π΅Ρ:
button.config(width=10, height=2, bg="red")
Π¨Π°Π³ 4: ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ bind() Π΄Π»Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ:
def click_handler(event):
print("ΠΠ»ΠΈΠΊ! ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΠΈΠΊΠΎΠ²: " + str(event.num))
Π‘Π²ΡΠΆΠΈΡΠ΅ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ:
button.bind("", click_handler)
Π¨Π°Π³ 5: ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ, ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠ·Π²Π°Π² ΠΌΠ΅ΡΠΎΠ΄ mainloop() Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°:
root.mainloop()
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π²Π°ΡΠ΅ ΠΎΠΊΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡΠΎ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°
from tkinter import *
def click_handler(event):
print("ΠΠ»ΠΈΠΊ! ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΠΈΠΊΠΎΠ²: " + str(event.num))
root = Tk()
root.geometry("400x400")
root.title("ΠΠ»ΠΈΠΊΠ΅Ρ")
button = Button(root, text="ΠΠ»ΠΈΠΊΠ½ΠΈ ΠΌΠ΅Π½Ρ!")
button.config(width=10, height=2, bg="red")
button.bind("", click_handler)
button.pack()
root.mainloop()
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°Π³ΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠΊΠ΅ΡΠ° Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ tkinter! ΠΠ΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ. Π£Π΄Π°ΡΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ!