如何在python Kivy应用程序的文本框中将文本格式化为超链接

2024-04-26 21:30:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想输出一个URL(文本)作为Kivy应用程序文本区域的超链接。我怎么能做这种事?在


Tags: 文本应用程序区域urlkivy
1条回答
网友
1楼 · 发布于 2024-04-26 21:30:08

使用RstDocument小部件可能是可行的,但是这个小部件的形状不是很好(RST语法中的很多东西都没有实现),所以您需要自己处理与单词本身的冲突和一些on_release事件,否则它只是一个简单的文本。在

RstDocument:
    text: '`GitHub <https://github.com>`_'

RstDocument中实现此类行为的一个步骤是:

^{pr2}$

因此,有两种方法可以做到这一点——要么实现与单词的冲突并添加一个自定义事件,要么生成更多的Labels,其中链接在带有自定义事件的单独标签中。但这也需要调整标签区域的大小,否则整个区域(不仅仅是字符串)将启动事件:

#:import webbrowser webbrowser

<LinkLabel@ButtonBehavior+Label>:
    on_release: webbrowser.open(self.text)

LinkLabel:
    text: 'https://github.com'
    size_hint: None, None
    size: self.texture_size
    # fancy styling
    color: (0, 0, 1, 1)
    pos_hint: {'center_x': 0.5, 'center_y': 0.5}

相关问题 更多 >