У меня есть графический интерфейс, в котором кнопки отображаются не так, как мне хотелось бы. Кадр обрезается, если графический интерфейс не растянут.

Вот так, где я наконец вижу три желаемые кнопки:

Я хочу, чтобы в рамке с кнопками (frame2) всегда отображались три кнопки и сохранялся одинаковый размер независимо от размера, до которого увеличивается графический интерфейс. Есть идеи, где я ошибаюсь?
Код
импортировать tkinter как tk импортировать Ткинтер из tkinter импортировать ttk импортировать matplotlib matplotlib.use("TkAgg") из matplotlib.backends.backend_tkagg import РисунокCanvasTkAgg, NavigationToolbar2Tk из matplotlib.figure импортировать рисунок #============================================== ==================== # КОРНЕВАЯ РИСУНОК ДЛЯ GUI #============================================== ==================== корень = тк.Тк() root.title("Виджет вкладки") root.geometry("600x450") tabControl = ttk.Notebook(корневой) tab1 = ttk.Frame(tabControl) tab2 = ttk.Frame(tabControl) tabControl.add(tab1, text ='Калибровка круга') tabControl.add(tab2, текст ='OPW') tk.Grid.rowconfigure(корень, 0, вес = 1) tk.Grid.columnconfigure(корень, 0, вес = 1) tabControl.grid(столбец=0, строка=0, липкий=tk.E+tk.W+tk.N+tk.S) #СДЕЛАЙТЕ ФИГУРУ ОБЪЕКТА my_figure1 = Рисунок (размер рисунка = (4, 4), dpi = 100) #СДЕЛАТЬ ВИДЖЕТ РАМКИ рама1 = tk.Frame(tab1, bd=2, рельеф=tk.GROOVE) Frame1.pack(сторона=tk.LEFT, привязка=tk.N, fill=tk.BOTH, развернуть=True) #создаем еще один кадр(frame2) рама2 = tk.Frame(tab1, bd=2, рельеф=tk.GROOVE) frame2.pack(side=tk.RIGHT, якорь=tk.E, fill=tk.BOTH) #СДЕЛАТЬ ОБЪЕКТ ХОЛСТА my_canvas1 = РисунокCanvasTkAgg(my_figure1, master =frame1) # создание холста Tkinter, содержащего фигуру Matplotlib # ПЕРЕВЕРНИТЕ ОБЪЕКТ ХОЛСТА В ВИДЖЕТ ХОЛСТА my_canvas1.get_tk_widget().pack(side = tkinter.TOP, fill = tkinter.BOTH,expand = 1) # размещение холста в окне Tkinter my_canvas1.draw() защитаplotData(): проходить защита ClearPlot(): проходить # СДЕЛАТЬ КНОПКУ ДЛЯ ПОСТРОЕНИЯ ГРАФИКА button1 = tk.Button(frame2, text = "Plot", команда =plotData, рельеф = tk.GROOVE, Padx =20, Pady =20 ) button1.grid(строка = 0, столбец = 0) # СДЕЛАТЬ КНОПКУ ДЛЯ ОЧИСТКИ ГРАФИКА button2 = tk.Button(frame2, text = "Clear", команда =clearPlot, рельеф = tk.GROOVE, Padx =20, Pady =20 ) button2.grid(строка = 0, столбец = 1) # СДЕЛАТЬ КНОПКУ, ЧТОБЫ закрыть button2 = tk.Button(frame2, text = "Закрыть", команда =clearPlot, рельеф = tk.GROOVE, Padx =20, Pady =20 ) button2.grid(строка = 0, столбец = 2) корень.mainloop()
Мобильная версия