我在Windows中使用Python 2.7 / tkinter进行编码,并在列表栏上放置一个滚动条,我可以轻松地做到这一点(感谢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()
产生这个:
答案 0 :(得分:0)
对于scrollbar.pack(side=RIGHT, fill=Y)
执行fill=BOTH
而不是fill=Y
。
答案 1 :(得分:0)
聚会晚了几年,但是我有一种方法可以使Vertical滚动条在X轴上扩展! (此外,由于当前时间,该功能适用于Python 2和3)
诀窍是创建一个可以扩展的自定义样式。这个例子是没有用的,您不想让滚动条这么厚,但是这个概念可以用来创建您想要的滚动条!
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()