canvas - Tkinter Canvas 中的滚动区域?

标签 canvas python-3.x tkinter scrollbar

我用 Python 写了一个程序。但我想知道是否有更短的方法可以做到这一点。特别是关于“ Canvas ”、“框架”、“标签框架”和“标签”,有没有其他方法可以自动制作“滚动区域”(而不是我写的,如果可能的话,在 Tkinter 中以自然的方式)

这是代码:

from tkinter import *
dict = {}
Liste = ["bir","iki","üç","4",5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
a = 1

####### ekleme basi ##################################################
pencere = Tk()
pencere.geometry("{0}x{1}".format(100, 100))

labelFrame = LabelFrame(pencere, width = 100, height = 100)
labelFrame.pack(side="left",fill=BOTH)
canvas = Canvas(labelFrame,relief=SUNKEN)
#canvas.config(scrollregion=(0,0,300,1000))    # halloldu =)

scrollbar = Scrollbar(labelFrame)
scrollbar.config(command=canvas.yview)
canvas.config(yscrollcommand=scrollbar.set)
scrollbar.pack(side="right",fill=Y)
canvas.pack(side="left",expand=YES,fill=BOTH)

frame = Frame(canvas,width=100,height=100)
frame.pack(side="top",fill=BOTH)
canvas.create_window(0,0,window=frame, anchor="nw")
####### ekleme sonu ##################################################

bas = [0, 0, 0, 100]
for i in Liste:
    dict["a%s"%a] = Label(frame, text=i)    # "frame" ekledim
    dict["a%s"%a].grid(row=a)
    canvas["scrollregion"] = "%d %d %d %d" %(bas[0], bas[1], bas[2], bas[3])
    bas[3] += 16    # "scrollregion" i dinamik olarak arttir (degistirebilirsiniz)
    a += 1


mainloop() 

注意:英语是我的第二语言,我不太了解,所以很抱歉。

最佳答案

设置滚动区域的典型方法是将其设置为 Canvas 中所有内容的边界框,可以使用 bbox 检索。方法,给它文字字符串 "all"

canvas.configure(scrollregion = canvas.bbox("all"))

关于canvas - Tkinter Canvas 中的滚动区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11860062/

相关文章:

javascript - 我在 Canvas 上的 EaselJS 位图在 Firefox 中正确呈现,但(有时)没有缩放并在 Chrome 中占据整个 Canvas ?

python-3.x - numpy.bincount 是否支持 numpy.float128 类型权重?

python - 如何在python中提取x509

Python 3 - Tkinter - askopenfilename - 通过 regEx 过滤文件名(不是按扩展名)

Python:如何检测长序列号中的特定数字

javascript - 有什么方法可以使这种洪水在 HTML5 Canvas 中更快地填充?

javascript - fabric.js - toDataURL 在 Canvas 上有图像时显示空白页

javascript - Canvas 清理问题。选择未在 Canvasteroids 中清除的对象

python-3.x - joblib 转储时出现内存错误

Python/Tkinter : Are Tkinter StringVar (IntVar, 等)线程安全吗?