1

私は使用するコードを持っていますListbox.curselection():

self.index = int(self._Listbox.curselection()[0])

リストボックスで何も選択されていないときにエラー ウィンドウを表示したいと考えています。

フィードバックをいただければ幸いです。ありがとう!

4

1 に答える 1

3

何が問題なのか 100% わかりません。項目が選択されていない場合、 はself._Listbox.curselection()空のリストを返す必要があります。その後、インデックス 0 を取得するため、IndexError.

デモコード:

from Tkinter import *

master = Tk()

listbox = Listbox(master)
listbox.pack()

listbox.insert(END, "a list entry")

for item in ["one", "two", "three", "four"]:
    listbox.insert(END, item)

def callback():
    items = map(int, listbox.curselection())
    if(len(items) == 0):
        print "No items"
    else:
        print items

button = Button(master,text="press",command=callback)
button.pack()
mainloop()

上記のコードの動作 (何も選択されていない場合は空のリストが返される) に基づいて、何も選択されていない場合、コードIndexError をスローする必要があります。あとは、例外を処理するだけです。

try:
    self.index = int(self._Listbox.curselection()[0])
except IndexError:
    tkMessageBox.showwarning("Oops","Need to select something")

最後に、標準の Tkinter ダイアログ (モジュール)に関するドキュメントへのリンクを残しておきます。tkMessageBox

于 2012-10-10T02:55:03.237 に答える