これは、私が今日提起したのと同じ問題で、何人かが私を助けようとしましたが、うまくいきません。私がしたいのは、リストボックスをクリックしたときに行った複数の選択を「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」は空のタプル()として出てきます。テスト文字列「hello」が表示されないため、「entered」関数が呼び出されないことは明らかです。
また、「Double-Button-」、「<>」などのさまざまなオプションが何であるかもわかりません。各オプションのリストと説明はどこにありますか?
「print ichise」が機能するように誰かが私のプログラムを修正してくれたら、本当にありがたいです。私のプログラムからわかるように、私は自分が何をしているのかよくわかっていませんが、熱心に学びたいと思っています。ありがとうございました。