【发布时间】:2012-11-29 11:51:56
【问题描述】:
这是我今天早些时候提出的同一个问题,你们中的一些人试图帮助我解决这个问题,但我无法让它发挥作用。我要做的就是在单击列表框时使用我所做的多项选择来填充“ichose”。
import Tkinter as tk
from Tkinter import *
global ichose
class App(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self,master)
self.master=master
self.grid()
self.ichose = ()
self.l = Listbox(self, height=10, selectmode=EXTENDED)
# Selectmode can be SINGLE, BROWSE, MULTIPLE or EXTENDED. Default BROWSE
self.l.grid(column=0, row=0, sticky=(N,W,E,S))
self.l.bind("Double-Button-1", self.entered)
s = Scrollbar(self, orient=VERTICAL, command=self.l.yview)
s.grid(column=0, row=0, sticky=(N,S,E))
self.l['yscrollcommand'] = s.set
for i in range(1,101):
self.l.insert('end', 'Line %d of 100' % i)
def entered(self, event):
self.ichose = self.selection_get()
self.ichose = ('hello')
root=tk.Tk()
root.title('Listbox Problem')
root.geometry('200x200')
app=App(root)
root.mainloop()
print app.ichose
无论我做什么,“ichose”都会以空元组 () 的形式出现。 很明显,从未调用过“entered”函数,因为我从未见过测试字符串“hello”。
我也不知道“Double-Button-”、“”等中的各种选项是什么。在哪里可以找到每个选项的列表和说明?
如果有人可以修改我的程序以使“print ichose”正常工作,我将不胜感激。您可以从我的程序中看到,我并不真正知道自己在做什么,但很想学习。谢谢。
【问题讨论】: