Напишите программу по описанию. Размеры многострочного текстового поля определяются значениями, введенными в однострочные текстовые поля. Изменение размера происходит при нажатии мышью на кнопку, а также при нажатии клавиши Enter. Цвет фона экземпляра Text светлосерый (lightgrey), когда поле не в фокусе, и белый, когда имеет фокус.
Событие получения фокуса обозначается как , потери – как .
Для справки: фокус перемещается по виджетам при нажатии Tab, Ctrl+Tab, Shift+Tab, а также при клике по ним мышью (к кнопкам последнее не относится).
Код на Python 3 с комментариями
```python
import tkinter as tk
def on_focus_in(event):
# Изменение фона на белый при получении фокуса
text.config(bg="white")
def on_focus_out(event):
# Изменение фона на светлосерый при потере фокуса
text.config(bg="lightgrey")
def resize_text():
# Изменение размера текстового поля на основе введенных значений в однострочных полях
try:
width = int(width_entry.get())
height = int(height_entry.get())
text.config(width=width, height=height)
except ValueError:
# Обработка исключения, если введены некорректные значения
pass
# Создание главного окна приложения
root = tk.Tk()
# Создание однострочного текстового поля для ввода ширины
width_label = tk.Label(root, text="Width:")
width_label.pack()
width_entry = tk.Entry(root)
width_entry.pack()
# Создание однострочного текстового поля для ввода высоты
height_label = tk.Label(root, text="Height:")
height_label.pack()
height_entry = tk.Entry(root)
height_entry.pack()
# Создание кнопки для изменения размера текстового поля
resize_button = tk.Button(root, text="Resize", command=resize_text)
resize_button.pack()
# Создание многострочного текстового поля
text = tk.Text(root, bg="lightgrey")
text.pack()
# Привязка событий получения и потери фокуса к функциям on_focus_in и on_focus_out
text.bind("
text.bind("
# Запуск главного цикла обработки событий
root.mainloop()
```
В данной программе используется библиотека Tkinter для создания графического интерфейса. При получении фокуса многострочное текстовое поле изменяет цвет фона на белый, а при потере фокуса – на светлосерый. Ширина и высота многострочного поля определяются значениями, введенными в однострочные текстовые поля. Изменение размера происходит при нажатии кнопки "Resize" или клавиши Enter.
Надеюсь, этот ответ помог вам! Если у вас есть еще вопросы, не стесняйтесь задавать.