Tkinter Canvas 拒绝在窗口调整大小时扩展或收缩

2024-09-30 01:32:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使我的画布根据窗口大小展开和收缩,必要时使用滚动条。我还没有添加水平滚动条,但它既没有水平缩放也没有垂直缩放,而是固执地保持任意大小。在

我有两个帧的原因是因为内部帧水平滚动,因为我有几个画布必须一起滚动,只有一个也垂直滚动。在

root = Tk()
maxtick = 1000

frame = ttk.Frame(root)     # , padding="3 3 12 12")
frame.grid(column=0, row=0, sticky=(N, W, E, S))
frame.columnconfigure(0, weight=1)
frame.rowconfigure(0, weight=1)

inner_frame = ttk.Frame(frame)
inner_frame.grid(column=0, row=0, sticky=(N, W, E, S))
inner_frame.columnconfigure(0, weight=1)
inner_frame.rowconfigure(0, weight=1)

# Primary canvas (inner_frame)
canvas = Canvas(inner_frame, bg='#FFF', width=maxtick,
                scrollregion=(0, 0, maxtick, 16 * (128 + 1 + 1)) )
canvas.grid(column=0, row=0, sticky=(N, W, E, S))

for y in range(1, 128 + 1 + 1):
    canvas.create_line(0, 16 * y - 1, maxtick, 16 * y - 1)

# Vertical scrollbar
vbar = ttk.Scrollbar(frame, orient=VERTICAL, command=canvas.yview)
vbar.grid(column=1, row=0, sticky=(N, W, E, S))
canvas.configure(yscrollcommand=vbar.set)

# canvas.create_line(10, 10, 200, 50)

root.mainloop()

Tags: 画布水平columnrootframegridrowcanvas

热门问题