gpt4 book ai didi

python - 滚动条如何填充到 Canvas 的高度? (基于网格)

转载 作者:太空宇宙 更新时间:2023-11-04 09:25:41 27 4
gpt4 key购买 nike

我将滚动条放在第二个窗口中。但是滚动条没有canvas那么高,很小。而且只有按钮有效。如何使它成为 Canvas 的高度?

import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk



def on_window1():

top = tk.Toplevel()
top.wm_geometry("794x470")
top.title('Optimized Map 1')


frame = tk.Frame(top)
frame.grid(row=3, column=0)

canvas1 = tk.Canvas(top, width=400, height=280)
canvas1.grid(row=0,column=200)

for i in range(40):
l3 = tk.Label(canvas1, text="Number of Rectangles:" + str(i))
canvas1.create_window(50,21*i, window=l3, anchor=tk.NW)

myscrollbar= tk.Scrollbar(top,orient="vertical",command=canvas1.yview)
myscrollbar.grid(row=0,column=200)


#l4 = tk.Label(canvas1, text="Number of Rectangles:")
#canvas1.create_window(50,21, window=l4, anchor=tk.NW)

window = tk.Tk()


b1 = tk.Button(window, text="Next", command=on_window1)
b1.grid(row=0, column=0)

window.mainloop()

最佳答案

这是因为 grid 几何管理器不会自动扩展小部件以占用它们可用的所有窗口空间。

您可以使用 sticky 属性告诉小部件它应该粘在“单元格”的哪些边缘:

myscrollbar.grid(row=0,column=200, sticky="NS")

添加以上行代替您的 grid 调用将解决此问题。


供引用,“单元格”的四个边均以四个基本方向(北、东、南和西)命名,其中 N 代表顶边,E 代表右边,S 代表底边,W 代表左边缘。

您可以在属性声明中将它们组合在一起,方法是将所有四个以任意顺序添加为字符串。

关于python - 滚动条如何填充到 Canvas 的高度? (基于网格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57771365/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com