2012-06-20 4 views
1

Я нахожу эту функцию автоматического выбора индексу товаров 0 в списке, что неприятно. В моем сценарии у меня есть 3 списка, называемые lb1, lb2 и lb3. Если пользователь выбирает любые элементы на lb2 или lb3, я намереваюсь всплывать MessageBox, чтобы попросить пользователя выбрать только элементы из lb1. Однако из-за автоматического выбора элементов индекса 0 в lb2 и lb3, всякий раз, когда я нажимаю на элемент в lb1, появляется MessageBox.Python Tkinter Listbox Отменить выбор по умолчанию

Вопрос: Как отключить первоначальный выбор индекса товаров 0 в ListBox?

Это часть моего сценария для вызова MessageBox, если пользователь выбирает элементы из LB2 или LB3:

if lb2.get(ACTIVE) or lb3.get(ACTIVE): 
    tkMessageBox.showwarning("Warning","Please select from lb1 ") 

Пожалуйста, консультации! Любые другие способы выполнения намеченного действия также будут выполнены. Благодарю.

+0

Thx для редактирования. Очень мало. Нужно ли добавлять к этому вопросу другие теги? –

ответ

1

Какая ОС вы используете?

Если я выполню этот код (взятый с справочной страницы списка Tkinter на странице effbot.org) в Windows, в списке нет выбора по умолчанию.

from Tkinter import * 
master=Tk() 
listbox=Listbox(master) 
listbox.pack() 
for item in ['one','two','three','four']: 
    listbox.insert(END, item) 

EDIT: Хорошо, теперь я вижу, что вы просите. Сначала вы хотите проверить метод curselection, прежде чем пытаться использовать get(ACTIVE).

if listbox.curselection(): 
    item = listbox.get(ACTIVE) 

Помогло ли это? Вы можете найти more complete example here.

+0

Привет, я использую Windows XP Python 2.3. Хорошо, что я имею в виду от выбора по умолчанию, так это то, что когда я попытался получить выбранный элемент в списке, автоматически он будет извлекать 0-й элемент, даже если я еще не выбрал/не выделил элемент в списке. Я хочу удалить этот по умолчанию выбранный 0-й элемент в списке. –

+0

Брэндон, попробуйте использовать функцию get, чтобы получить элемент, и вы увидите, что хотя физически мы не видим ни одного элемента, выделенного по умолчанию, на самом деле 0-й элемент будет получен по умолчанию. –

+0

Ага, почему я не думал просто проверять curlselection! Если пользователь не выбрал какой-либо элемент, curlselection возвращает пустой кортеж. Я не должен использовать get (ACTIVE) в выражении if. Thx для вашей помощи Brandon.Appreciate это. –

Смежные вопросы