如何解决在 PySimpleGUI 中,如何在文本字段中添加超链接?
我正在创建一个基于此 Youtube tutorial 的搜索引擎,它在 sg.Output 元素中提供搜索结果的输出。我希望每个结果都可以点击并在 Windows 文件资源管理器中打开并选择文件。
我的问题是在 PySimpleGUI 输出框 (sg.Output) 中,我似乎只有文本。
如何添加带有链接的文本以运行 subprocess like this?我的猜测是它类似于 was discussed here:
sg.Text('Here',is_link=True,key='link') # then link the key to an event
但是,如前所述,如果我向 sg.Output 添加除文本以外的任何内容,则它不起作用,即以下内容不起作用:
sg.window.FindElement('-OUTPUT-').Update(sg.Text('Here',key='link'))
解决方法
为sg.Output
或sg.Multiline
启用超链接功能会非常复杂。
这里是通过使用选项 sg.Text
和 enable_events=True
为 tooltip
提供超链接功能的简单代码,也适用于其他一些元素。
import webbrowser
import PySimpleGUI as sg
urls = {
'Google':'https://www.google.com','Amazon':'https://www.amazon.com/','NASA' :'https://www.nasa.gov/','Python':'https://www.python.org/',}
items = sorted(urls.keys())
sg.theme("DarkBlue")
font = ('Courier New',16,'underline')
layout = [[sg.Text(txt,tooltip=urls[txt],enable_events=True,font=font,key=f'URL {urls[txt]}')] for txt in items]
window = sg.Window('Hyperlink',layout,size=(250,150),finalize=True)
while True:
event,values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event.startswith("URL "):
url = event.split(' ')[1]
webbrowser.open(url)
print(event,values)
window.close()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。