修正ScrolledListbox不可滚动



大家好,新年快乐,

我正试图建立一个用户界面,并有一个fix . scrolledlistbox的问题。(Python 2.6.5, Tix 8.4.3, Windows XP)

我想用它来显示不同数量的项目,取决于用户之前的选择。

这是一个GIS的东西:用户从a中选择一层组合框,按下按钮和列表框显示从属性检索到的所有字段名表格有些层有5个,有些层有5个30个字段。原则上它是有效的。

但是列表框旁边的滚动条仍然存在灰色,无功能

在一个小的测试代码片段中,其中,在按一个按钮,一个随机(0..100)数量的项目显示在列表框中,滚动条可以工作。

我不知道。有人学过这个吗?

编辑:下面的示例代码显示了一个不可滚动scrollledlistbox

import Tix  
import random  
import arcpy       
class SampleApp(object):
  def __init__(self):
    self.window = Tix.Tk()
    #listbox
    self.lbx = Tix.ScrolledListBox(self.window, width = 30)
    self.lbx.listbox.insert(Tix.END, " ")
    self.lbx.listbox.bind("<<ListboxSelect>>", self.Choose)
    #button to generate new list
    self.btn = Tix.Button(self.window, text = "new list",
                          command = self.NewList)
    #label shows chosen list item
    self.lbl = Tix.Label(self.window, text = "   ", bg = "white")

    #pack
    self.btn.pack(pady = 10)
    self.lbx.pack(side="top", fill="both", expand=True, pady = 10)
    self.lbl.pack(pady = 10)
    self.window.mainloop()
  #function to generate new listbox items on button command
  def NewList(self):
    self.lbx.listbox.delete(0, Tix.END)
    r = random.randint(1, 30)
    for i in range(r):
        self.lbx.listbox.insert(Tix.END, i)
  #event to show selected item in label
  def Choose(self, event):
    widget = event.widget
    selection = widget.curselection()
    value = widget.get(selection[0])
    self.lbl.config(text = value)

 sa = SampleApp()

是否将滚动条附加到列表框上?

from Tkinter import *
root = Tk()
scrollbar = Scrollbar(root)
scrollbar.pack(side=RIGHT, fill=Y)
listbox = Listbox(root)
listbox.pack()
for i in range(100):
    listbox.insert(END, i)
# attach listbox to scrollbar
listbox.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=listbox.yview)
mainloop()

被盗自:http://effbot.org/zone/tkinter-scrollbar-patterns.htm

编辑:耐温钛。ScrolledListBox的工作方式不同,所以不要把它与上面的解决方案混在一起。

相关内容

  • 没有找到相关文章

最新更新