2017-10-13 12 views
1

J'ai cette application qui montre les cours des actions. Je voudrais que le graphique prenne autant d'espace que possible lors du redimensionnement. Cependant, pour une raison quelconque, la barre d'outils prend toujours beaucoup de place. Maintenant, quand j'ouvre la fenêtre, ça ressemble à ça. Je veux que la partie supérieure soit un peu plus mince en laissant juste assez de place pour la barre d'outils. J'ai essayé de donner une plus petite hauteur au cadre de la barre d'outils, mais cela n'a pas aidé. Toute contribution est appréciée.barre d'outils Matplotlib prend trop d'espace lors du redimensionnement

Voici le code correspondant:

class Application(tk.Frame): 
global timeFrameCount 
global coy 
global firm 
global timeTrack 

def __init__(self,master=None): 
    tk.Frame.__init__(self,master) 
    self.createWidgets() 

def createWidgets(self): 

    self.plotbutton=ttk.Button(master=root, text="APPLY/RESET", command=lambda: self.plot(),width=12) 
    self.plotbutton.grid(row=3,columnspan=2,sticky='s') 
    self.entry=ttk.Entry(master=root,width=10) 
    self.entry.grid(row=2,columnspan=2,sticky='s') 
def plot(self): 
    global firm 
    global coy 
    global timeTrack 
    firm=True 
    timeTrack=False 
    fig = plt.figure(figsize=(7, 5)) 
    ax1 = plt.subplot2grid((6, 1), (0, 0), rowspan=4, colspan=1) 
    ax2 = plt.subplot2grid((6, 1), (4, 0), rowspan=2, colspan=1, sharex=ax1) 
    ax1.tick_params(bottom="off", left="off") 
    ax2.tick_params(bottom="off", left="off") 
    canvas = FigureCanvasTkAgg(fig, master=root) 
    canvas.get_tk_widget().grid(row=1, rowspan=1,columnspan=2,sticky='wens') 
    toolbar_frame = tk.Frame(master=root,height=20) 
    toolbar_frame.grid(row=0, column=0, sticky='we') 
    toolbar = NavigationToolbar2TkAgg(canvas, toolbar_frame) 
    toolbar.update() 
root=tk.Tk() 
root.columnconfigure(0, weight=1) 
root.rowconfigure(0, weight=1) 
root.rowconfigure(1, weight=1) 
root.iconbitmap('zzz.ico') 
app=Application(master=root) 
root.geometry('700x608') 
app.mainloop() 

Répondre

0

J'ai changé la taille de la figure et cela a fonctionné !!

0

Essayez de donner du poids à la ligne 1 au lieu de la ligne 0. Le poids doit être sur la ligne avec l'intrigue.