首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tix ScrolledListbox不可滚动

Tix ScrolledListbox不可滚动
EN

Stack Overflow用户
提问于 2013-01-02 19:52:02
回答 1查看 616关注 0票数 0

你好,新年快乐,

我正在尝试构建一个用户界面,但在使用Tix.ScrolledListbox时遇到问题。(Python 2.6.5、Tix 8.4.3、Windows XP)

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

这是地理信息系统的事情:用户从ComboBox中选择一个图层,按下一个按钮,列表框就会显示从属性表中检索到的所有字段名。因此,对于某些层,有5个字段,对于其他层,有30个字段。原则上它是可行的。

但是列表框旁边的滚动条仍然是灰色的,没有任何功能。

在一个小的测试片段中,在按下按钮后,滚动条工作的列表框中显示随机(0..100)个项目。

我没有头绪。以前有人有过这个吗?

编辑:导入arcpy时,以下示例代码显示不可滚动的scrolledListbox

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2013-01-02 21:32:54

你把滚动条附加到列表框了吗?

代码语言:javascript
复制
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

编辑: Tix.ScrolledListBox的工作方式不同,所以不要将其与上面的解决方案混淆。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14121566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档