制作一个tkinter滚动条

2024-09-30 22:24:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Windows中用python2.7/tkinter编写代码,并在listbar上放置一个滚动条,我可以很容易地做到这一点(谢谢effbot.org)。不过,我也想让滚动条变宽-它将用于触摸屏,所以选择它越容易越好。我认为width属性会使它更宽,但它只会创建一些空白。我做错什么了?在

代码:

from Tkinter import *

top = Tk()

scrollbar = Scrollbar(top, width=100)
scrollbar.pack(side=RIGHT, fill=Y)

listbox = Listbox(top, yscrollcommand=scrollbar.set)
for i in range(1000):
    listbox.insert(END, str(i))
listbox.pack(side=LEFT, fill=BOTH)

scrollbar.config(command=listbox.yview)

top.mainloop()

结果是:

http://img826.imageshack.us/img826/2619/uxbk.jpg


Tags: 代码org属性tkinterwindowstopwidthfill
2条回答

对于scrollbar.pack(side=RIGHT, fill=Y)执行fill=BOTH,而不是{}。在

派对只晚了几年,但我有一个方法可以让垂直滚动条在X轴上展开!(另外,由于当前时间的原因,这适用于python2和python3)

诀窍是创建一个可以扩展的自定义样式。这个例子很没用,你不会想要这么厚的滚动条,但是这个概念可以用来创建一个你想要的!在

try:
    import Tkinter as tkinter
    import ttk

except:
    import tkinter
    import tkinter.ttk as ttk

root = tkinter.Tk()
root.geometry('%sx%s' % (root.winfo_screenwidth(), root.winfo_screenheight()))
root.pack_propagate(0)
textarea = tkinter.Text(root)

style = ttk.Style()
style.layout('Vertical.TScrollbar', [
    ('Vertical.Scrollbar.trough', {'sticky': 'nswe', 'children': [
        ('Vertical.Scrollbar.uparrow', {'side': 'top', 'sticky': 'nswe'}),
        ('Vertical.Scrollbar.downarrow', {'side': 'bottom', 'sticky': 'nswe'}),
        ('Vertical.Scrollbar.thumb', {'sticky': 'nswe', 'unit': 1, 'children': [
            ('Vertical.Scrollbar.grip', {'sticky': ''})
            ]})
        ]})
    ])

scrollbar = ttk.Scrollbar(root, command=textarea.yview)
textarea.config(yscrollcommand=scrollbar.set)


textarea.pack(side='left', fill='both', expand=0)
scrollbar.pack(side='left', fill='both', expand=1)

root.mainloop()

相关问题 更多 >