Напишите программу по описанию. Размеры многострочного текстового поля определяются значениями, введенными в однострочные текстовые поля. Изменение размера происходит при нажатии мышью на кнопку, а также при нажатии клавиши Enter. Цвет фона экземпляра Text светлосерый (lightgrey), когда поле не в фокусе, и белый, когда имеет фокус.
Событие получения фокуса обозначается как , потери – как .
Для справки: фокус перемещается по виджетам при нажатии Tab, Ctrl+Tab, Shift+Tab, а также при клике по ним мышью (к кнопкам последнее не относится).
Код на Python 3 с комментариями

artem877 artem877    2   02.12.2020 11:10    85

Ответы
Annpi Annpi  19.01.2024 10:51
Конечно, вот пример программы на 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("", on_focus_in)
text.bind("", on_focus_out)

# Запуск главного цикла обработки событий
root.mainloop()
```

В данной программе используется библиотека Tkinter для создания графического интерфейса. При получении фокуса многострочное текстовое поле изменяет цвет фона на белый, а при потере фокуса – на светлосерый. Ширина и высота многострочного поля определяются значениями, введенными в однострочные текстовые поля. Изменение размера происходит при нажатии кнопки "Resize" или клавиши Enter.

Надеюсь, этот ответ помог вам! Если у вас есть еще вопросы, не стесняйтесь задавать.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика