Можно ли добавить кликабельные текстовые ссылки в PySimpleGUI? Я уже пробовал использовать кнопки, которые затем используют os.system("start \"\" https://google.com/")
или webbrowser.open('www.google.com/', new=0)
, но после нажатия одной из кнопок в окне все остальные не работают.
Кликабельные текстовые ссылки с использованием PySimpleGUI
comment
Я рекомендую всегда явно устанавливать ключ для любого элемента, с которым вы работаете или получаете событие. Сделайте это ОБЫЧНЫМ текстом. Соглашение PSG - KEY-. Когда событие получено, используйте сложную строку, чтобы открыть браузер. Вы можете сохранить его как метаданные, если хотите, чтобы он был с элементом. Я предлагаю вывести странно отформатированную строку из обработки событий.
- person Mike from PSG   schedule 13.02.2021
Ответы (1)
В документации ясно, как это сделать. Документация элемента Text
показывает, что параметр enable_events
предоставит вам событие при щелчке по тексту.
https://pysimplegui.readthedocs.io/en/latest/call%20reference/#text-element
Когда ваш текст щелкнут, возвращаемая строка события будет полной строкой, содержащейся в элементе Text
(включая пробелы).
(Спасибо Крису за расширение ответа...)
Вообще говоря, я рекомендую быть явным с ключами для элементов. Он позволяет изменять текст, но событие и проверка события остаются прежними.
Документация нуждается в некотором обновлении, чтобы отразить то, что указал Крис. Спасибо, что нашли время, чтобы просмотреть этот Крис, сделать предложение.
person
Mike from PSG
schedule
14.06.2020
Рецензент указал на ошибку в коде PySimpleGUI. Он должен возвращать ключ с автоматической нумерацией, но вместо этого возвращает содержимое ТЕКСТА. Добавлю как баг. (Спасибо, рецензент... Мне жаль, что я так ошибся в комментарии к обзору! DOH!)
- person Mike from PSG; 13.02.2021
Проблема открыта на GitHub проекта... пожалуйста, сообщайте о проблемах, которые вы видите там, чтобы они были замечены и решены. Не уверен, как именно это разрешится, но вы можете отслеживать прогресс на GitHub. Еще раз спасибо рецензенту за указание на то, что он плохо документирован и, возможно, ведет себя не так, как предполагалось.
- person Mike from PSG; 13.02.2021