#python #user-interface #pysimplegui
#питон #пользовательский интерфейс #pysimplegui
Вопрос:
Я разрабатываю приложение с использованием PySimpleGui, которое будет назначать текст кнопки из списка. Текст на кнопках будет меняться пользователями по мере поиска. Я хочу иметь возможность читать, печатать и назначать текст кнопки при нажатии кнопки. Как мне это сделать? Вот код. Я пробовал несколько вещей, но безрезультатно. Два оператора печати в конце кода являются остатками.
import PySimpleGUI as sg
selection_button_text_data = ['Like a Rolling Stone','Bob Dylan','The Sound of Silence','Simon amp; Garfunkel','Respect','Aretha Franklin','A Day In The Life','The Beatles']
layout =[
[
[sg.Button(selection_button_text_data[0])],
[sg.Button(selection_button_text_data[1])],
[sg.Button(selection_button_text_data[2])],
[sg.Button(selection_button_text_data[3])]
]
]
window = sg.Window('Window Title', layout)
event, values = window.read()
window.close()
print(values)
print(sg.Button.GetText())
Комментарии:
1. Вы хотите обновлять кнопки на лету?
2. Алдервен, Да, я знаю.
Ответ №1:
В вашем случае лучше указать каждый ключ для каждой кнопки, тогда вы получите событие, совпадающее с ключом нажатой кнопки. С помощью window [key] вы можете получить элемент и применить метод get_text()
для получения текста кнопки.
import PySimpleGUI as sg
selection_button_text_data = [
'Like a Rolling Stone',
'Bob Dylan',
'The Sound of Silence',
'Simon amp; Garfunkel',
'Respect',
'Aretha Franklin',
'A Day In The Life','The Beatles',
]
layout =[
[sg.Button(selection_button_text_data[i], key=f'BTN{i}')] for i in range(4)
]
window = sg.Window('Window Title', layout)
event, values = window.read()
if event != sg.WINDOW_CLOSED:
print(window[event].get_text())
window.close()
The Sound of Silence
Комментарии:
1. Спасибо, Джейсон, это заставляет меня начать. Как и одна строка кода, которая создает несколько кнопок. Приветствуется… Теперь давайте посмотрим, справлюсь ли я с этим! 🙂 …. бред….