0
import Tkinter as tk

class GUI(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.canvas=tk.Canvas(self,scrollregion=(0,0,1000,1000))
        self.canvas.grid()

        self.canvas.create_line(0,0,1000,1000)

        self.scroll=tk.Scrollbar(self,orient=tk.HORIZONTAL,command=self.canvas.xview)
        self.scroll.grid()

GUI().mainloop()

滚动条似乎太短,如何使用网格布局类更改其长度?

4

1 回答 1

4

您需要为grid指定您希望小部件如何适应布局的方法提供参数。sticky论据是这里的关键。它接受各种格式的基坐标,这些坐标告诉 Tkinter 小部件的哪些边应该“粘贴”到网格单元的相应边。在您的情况下,您希望东 (E) 和西 (W) 侧保持不变,因此您grid对滚动条的调用可以通过多种方式格式化:

(使用 Tkinter 模块中的单个全局变量)

self.scroll.grid(sticky=tk.E + tk.W)

(使用模块中的特殊组合全局变量)

self.scroll.grid(sticky=tk.EW)

(使用字符串)

self.scroll.grid(sticky="EW")
于 2013-06-05T17:55:48.500 回答