在iMac上使用Python 2.7.16。Python和这个论坛的新手。我有一个应用程序,它有一个画布小部件,用户可以在上面绘制,我想在上面添加滚动条。过去两天我一直在尝试,但没有成功。我看了很多例子,但我什么都做不出来。
我该怎么做?
下面是一个屏幕截图,将源代码分解为基本代码。在屏幕截图中,外部窗口上的滚动条。我想要绘图画布上的滚动条,这是黑色区域。
谢谢。
这就是我的代码示例所产生的。
这就是我的代码示例所产生的。
这就是我想要的带有滚动条的画布。
现在看起来像这个
#!/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()
您不应该将滚动条放在画布内。通常,画布和滚动条应该共享一个共同的父级。
如果您希望滚动条看起来像在画布中一样,请创建一个带边框的框架,然后将画布和滚动条放在框架中。