Размер виджетов графического интерфейса Tkinter изменен после включения функции построения графика MatlabPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Размер виджетов графического интерфейса Tkinter изменен после включения функции построения графика Matlab

Сообщение Anonymous »

Я пытаюсь использовать графический интерфейс для кнопки и графика.
Когда я включаю функцию show_graph() внутри вкладок, размер окна изменяется, а также уменьшаются размеры виджетов и текста.

Код: Выделить всё

import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from tkinter import *
from tkinter import ttk
import numpy as np

# Function to toggle the motor button state
def togglebutton():
if Controlbutton["text"] == "Disable":
Controlbutton["text"] = "Enable"
Controlbutton["bg"] = "orange"
else:
Controlbutton["text"] = "Disable"
Controlbutton["bg"] = "red"

def show_graph(tab):
spd_frame = Frame(tab)
spd_frame.grid(row=0, column=0)

fig, ax = plt.subplots(dpi=100)

time = np.linspace(0, 10, 100)
speed = 3 * time + 2

ax.plot(time, speed)
ax.set_xlabel("X (s)")
ax.set_ylabel("Y")

canvas = FigureCanvasTkAgg(fig, master=spd_frame)
canvas.draw()
canvas.get_tk_widget().grid(row=0, column=0, padx=5, pady=5)
canvas.get_tk_widget().config(width=500, height=200)

# Function to create tabs and plot graphs
def tabss(root):
# Tabs window
tabcontrol = ttk.Notebook(root)

operationtab = ttk.Frame(tabcontrol)
plottab = ttk.Frame(tabcontrol)

tabcontrol.add(operationtab, text='Operations')
tabcontrol.add(plottab, text='Plot')
tabcontrol.pack(expand=1, fill='both')

# Operation content START
optframe = Frame(operationtab)
optframe.grid(row=0, column=1)

Label(optframe, text="State:").grid(row=0, column=0, padx=5, pady=5)
global Controlbutton
Controlbutton = Button(optframe, text="Disable", command=togglebutton, bg="red", width=20, height=2)
Controlbutton.grid(row=0, column=1, padx=10, pady=30)

Label(optframe, text="Control Mode:").grid(row=1, column=0, padx=5, pady=5)
tkvar = StringVar(optframe)
ControlModeoptions = ["Open", "close"]
ControlMode = OptionMenu(optframe, tkvar, *ControlModeoptions)
ControlMode.grid(row=1, column=1, padx=30, pady=10)
ControlMode.config(width=15)
tkvar.set(ControlModeoptions)  # Set default value

#show_graph(plottab)

if __name__ == "__main__":
# Basic setting for main window
root = Tk()
root.title("GUI V0.1")
root.geometry("880x600")

# Call the function to create tabs and plots
tabss(root)

root.mainloop()
Чтобы решить эту проблему, я использовал

pack_propagate(False)


grid_rowconfigure(0, Weight=1)


grid_columnconfigure( 0, вес=1)

без включения функции show_graph
[img]https:// i.sstatic.net/jtTENy1F.png[/img]

после включения show_graph графический интерфейс пользователя уменьшается до меньшего размера
где мне следует настроить, чтобы решить эту проблему.
Я запускал код как с функцией show_graph, так и без нее.
Больший код — без функции show_graph, а меньший — с функцией show_graph.
Изображение


Подробнее здесь: https://stackoverflow.com/questions/791 ... t-function
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»