На странице представлен фрагмент
Реши любую задачу с помощью нейросети.
Ниже приведен код программы на Python, реализующий указанное требование:
“`python
import tkinter as tk
def add_figure():
def draw_figure():
x1 = int(entry_x1.get())
y1 = int(entry_y1.get())
x2 = int(entry_x2.get())
y2 = int(entry_y2.get())
if radio_var.get() == 1:
canvas.create_rectangle(x1, y1, x2, y2)
else:
canvas.create_oval(x1, y1, x2, y2)
second_window.destroy()
second_window = tk.Toplevel(main_window)
label_x1 = tk.Label(second_window, text=”x1:”)
label_x1.grid(row=0, column=0)
entry_x1 = tk.Entry(second_window)
entry_x1.grid(row=0, column=1)
label_y1 = tk.Label(second_window, text=”y1:”)
label_y1.grid(row=1, column=0)
entry_y1 = tk.Entry(second_window)
entry_y1.grid(row=1, column=1)
label_x2 = tk.Label(second_window, text=”x2:”)
label_x2.grid(row=2, column=0)
entry_x2 = tk.Entry(second_window)
entry_x2.grid(row=2, column=1)
label_y2 = tk.Label(second_window, text=”y2:”)
label_y2.grid(row=3, column=0)
entry_y2 = tk.Entry(second_window)
entry_y2.grid(row=3, column=1)
radio_var = tk.IntVar()
radio_rect = tk.Radiobutton(second_window, text=”Прямоугольник”, variable=radio_var, value=1)
radio_rect.grid(row=4, column=0)
radio_oval = tk.Radiobutton(second_window, text=”Овал”, variable=radio_var, value=2)
radio_oval.grid(row=4, column=1)
button_draw = tk.Button(second_window, text=”Нарисовать”, command=draw_figure)
button_draw.grid(row=5, column=0, columnspan=2)
main_window = tk.Tk()
canvas = tk.Canvas(main_window, width=400, height=400)
canvas.grid(row=0, column=0)
button_add = tk.Button(main_window, text=”Добавить фигуру”, command=add_figure)
button_add.grid(row=1, column=0)
main_window.mainloop()
“`
В данной программе используется библиотека Tkinter для создания графического интерфейса. Основное окно `main_window` содержит холст `canvas`, на котором рисуются фигуры, и кнопку “Добавить фигуру”, которая открывает второе окно `second_window`.
Во втором окне расположены четыре поля для ввода координат верхнего левого и нижнего правого углов фигуры – `entry_x1`, `entry_y1`, `entry_x2`, `entry_y2` соответственно. Также в окне находятся две радиокнопки для выбора типа фигуры – прямоугольника или овала.
После ввода координат и выбора типа фигуры, при нажатии на кнопку “Нарисовать” фигура добавляется на холст `canvas` с использованием методов `create_rectangle` или `create_oval`, в зависимости от выбранной радиокнопки. После этого второе окно `second_window` закрывается.