在iMac上使用Python 2.7.16。 Python和此论坛的新手。 我有一个具有画布小部件的应用程序,用户可以在其上进行绘制,我想向其中添加滚动条。在过去的两天里,我一直在努力,但没有运气。我看过很多例子,但是我什么也做不了。
我该怎么做?
下面是一个屏幕截图,并将源代码简化为基本代码。 在屏幕快照中,外窗上的滚动条。我想要绘图画布上的滚动条,它是黑色区域。
谢谢。
This what my code example produce.
这是我的代码示例产生的。
This is what I want with the canvas having scroll bars.
#!/usr/bin/python
import Tkinter as tk
WINDOW_SIZE='950x650'
##########
# Size for canvas draring area
##########
MAX_X = 600
MAX_Y = 600
window = tk.Tk()
window.title("Cluster")
window.geometry(WINDOW_SIZE)
# Create a frame parent for the canvas and scrollbar(s).
p_frame = tk.Frame(window)
p_frame.grid(row=3, column=0, sticky=tk.NW)
Canvas_frame = tk.Frame()
Canvas = tk.Canvas(window, bg="black", height = MAX_Y, width = MAX_X)
Canvas.pack();
coord = 10, 50, 240, 210
arc = Canvas.create_arc(coord, start=0, extent=150, fill="red")
line = Canvas.create_line(0, 0, 20, 20, 300, 300, 400, 400, fill="dark violet")
lbl = tk.Label(window, width=15, height=5, borderwidth=2, relief="groove", anchor="center", justify="center", text="fasfdasf")
lbl.pack()
# Create a vertical scrollbar linked to the canvas.
vsbar = tk.Scrollbar(p_frame, orient=tk.VERTICAL, command=Canvas.yview)
vsbar.grid(row=0, column=1, sticky=tk.NS)
Canvas.configure(yscrollcommand=vsbar.set)
# Create a horizontal scrollbar linked to the canvas.
hsbar = tk.Scrollbar(p_frame, orient=tk.HORIZONTAL, command=Canvas.xview)
hsbar.grid(row=1, column=0, sticky=tk.EW)
Canvas.configure(xscrollcommand=hsbar.set)
# Start Tk's event loop
window.mainloop()
答案 0 :(得分:0)
您不应将滚动条放在画布内。通常,画布和滚动条应共享一个公共父级。
如果希望滚动条看起来像在画布内一样,请创建一个带有边框的框架,然后将画布和滚动条放在框架内。