Проблема с привязкой элементов Listbox к некоторым значениям - PullRequest
0 голосов
/ 02 августа 2020

Я работаю со списками в Python. Я вставил список книг в список. Но я sh показываю подробности этих книг, когда щелкаю названия книг в списке. Я пробовал использовать оператор if, но он не работает. Вот код

  def det():
    for val in my_listbox:
        if val==b1:
            print('It’s impossible to talk about mystery novels without immediately thinking of the legendary Agatha Christie. Amongst all of her works, none has a story quite as impeccably crafted as And Then There Were None, which explains why it is the best selling mystery book of all time.' )

, где b1 - первая книга в списке. Пожалуйста, предложите мне какую-нибудь команду, которую я могу использовать.

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Самое простое решение - при условии, что каждое значение в списке уникально - это связать словарь или строку базы данных с элементами списка. Тогда становится тривиальным делом показать данные, связанные с выбором.

Например, учитывая такую ​​структуру данных:

data = {
    "Treasure Island": {"author": "Robert Louis Stevenson"},
    "The Adventures of Tom Sawyer": {"author": "Mark Twain"},
}

... и учитывая, что названия книг вставленный в список, следующий код можно использовать для обновления метки с именем detail с указанием автора выбранной книги:

def show_detail(event=None):
    selection = listbox.curselection()
    if selection:
        index = selection[0]
        title = listbox.get(index)
        author = data[title]["author"]
        detail.configure(text=f"Author: {author}")
...
listbox.bind("<<ListboxSelect>>", show_detail)
0 голосов
/ 02 августа 2020

Это причинный python или tkinter? Если это tkinter, print () работает только в фоновом режиме (на черном экране) U может использовать Label ()

def det():
    for val in my_listbox:
        if val==b1:
            Label(text='It’s impossible to talk about mystery novels without immediately thinking of the legendary Agatha Christie. Amongst all of her works, none has a story quite as impeccably crafted as And Then There Were None, which explains why it is the best selling mystery book of all time.' ).pack()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...