У цьому коді створюється вікно з полотном, на якому ми створюємо поле, текст та прямокутник. Далі ми прив'язуємо обробник події on_double_click до події DblClick для поля. Під час обробки події ми переміщуємо поле, збільшуємо товщину його рамки, виводимо прізвище та ім'я зеленим кольором на жовтому тлі. Код зберігається в файл з розширенням .py у папці з іменем "Завдання 6.5.4".
Answers & Comments
Ответ:
import tkinter as tk
def on_double_click(event):
# переміщення поля на 80 пікселів управо та 20 пікселів уверх
canvas.move(field, 80, -20)
# збільшення товщини рамки поля на 5 пікселів
canvas.itemconfig(field, width=canvas.itemcget(field, "width") + 5)
# виведення прізвища та імені зеленим кольором на жовтому тлі
canvas.itemconfig(text, text="Прізвище Ім'я", fill="green")
canvas.itemconfig(rect, fill="yellow")
# створення вікна та полотна
window = tk.Tk()
canvas = tk.Canvas(window, width=400, height=400)
canvas.pack()
# створення поля, тексту та прямокутника
field = canvas.create_rectangle(50, 50, 150, 150, width=3)
text = canvas.create_text(100, 100, text="", font=("Arial", 20))
rect = canvas.create_rectangle(0, 0, 400, 400, fill="white")
# прив'язка обробника події до події DblClick для поля
canvas.tag_bind(field, "<Double-Button-1>", on_double_click)
# запуск головного циклу програми
window.mainloop()
Объяснение:
У цьому коді створюється вікно з полотном, на якому ми створюємо поле, текст та прямокутник. Далі ми прив'язуємо обробник події on_double_click до події DblClick для поля. Під час обробки події ми переміщуємо поле, збільшуємо товщину його рамки, виводимо прізвище та ім'я зеленим кольором на жовтому тлі. Код зберігається в файл з розширенням .py у папці з іменем "Завдання 6.5.4".
def dbl_click(event):
entry.config(borderwidth=5, relief="sunken")
entry.config(bg="yellow", fg="green")
entry.config(text="MyName MySurname")
entry.place(x=entry.winfo_x()+80, y=entry.winfo_y()-20)
root = tk.Tk()
entry = tk.Entry(root, width=30, borderwidth=1, relief="solid")
entry.pack()
entry.bind("", dbl_click)
root.mainloop()