简体   繁体   English

画布中的Python Tkinter滚动条

[英]Python Tkinter scrollbar in canvas

I'm trying to do a scrollbar on the right side of the canvas ( the window ), but the scrollbar won't even show when plotting. 我正在尝试在画布(窗口)的右侧创建一个滚动条,但是在绘制时该滚动条甚至不会显示。 What am I doing wrong? 我究竟做错了什么?

from tkinter import *

# create canvas
root = Tk()
root.title("Aktieköp")
root.configure(background="white")
frame=Frame(root, width=1100, height=1000)
frame.grid(row=0, column=0)
canvas=Canvas(frame,bg="white",width=1100,height=1000)

# my photo
photo = PhotoImage(file="aktier.gif")
label0 = Label(frame, image = photo, bg="white"). grid(row=0, column=0)

# create scrollbar

scrollbar=Scrollbar(frame,orient=VERTICAL)
scrollbar.pack(side=RIGHT,fill=Y)
scrollbar.config(command=canvas.yview)
frame.config(width=1100,height=1000)
frame.config(yscrollcommand=scrollbar.set)
frame.pack(side=RIGHT,expand=True,fill=Y)

root.mainloop()

You use the layout managers wrong: 您使用布局管理器错误:

  1. Do not use grid() and pack() to layout children of a widget: 不要使用grid()pack()来布局小部件的子级:
    1. frame.grid() and frame.pack() ==> root now uses two layout managers and frame needs to be mapped by two managers frame.grid()frame.pack() ==> root现在使用两个布局管理器,并且框架需要由两个管理器映射
    2. label0.grid() and scrollbar.pack() ==> frame uses two layout managers label0.grid()scrollbar.pack() ==> frame使用两个布局管理器
  2. canvas is not mapped by grid or pack at all, so how you can see and draw on it I don't know. canvas根本不是通过gridpack映射的,所以我不知道如何查看和绘制canvas

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM