Kivy Label Markup链接更改

时间:2014-11-12 11:50:23

标签: python-3.x dynamic hyperlink label kivy

我一直在寻找使用标记在标签中建立链接,我已经这样做但是想知道是否有办法更改链接指向的网址

如果我有

Label:
    id: sLinksLabel
    text: 'Load Up [ref=some]some_link[/ref]'
    text_size: self.width, None
    size_hint_y: None
    pos_hint:{'center_x':0.5, 'y': 0.20}
    size: (150, 44)
    markup: True
    on_ref_press:
        import webbrowser
        webbrowser.open("somelink.com")

是否可以在标签中的文本更改为链接时更改链接?

即如果标签文字发生变化,就像

self.root.sLinks.text = '[ref=some]some_other_link[/ref]'

我还想过调用类似

的程序
def loadlink(self, *args):
    if sLinks.text == 'Load Up [ref=some]website[/ref]': #check if nothing has changed load default page
        import webbrowser
        webbrowser.open("some_link")
    else: #text has been changed load new link
        link = self.root.sLinks.text #get link from label text
        import webbrowser
        webbrowser.open(some_other_link)

并将on_ref_press更改为

        on_ref_press:
        loadlink()

但它表示没有定义loadlink ... grrrr

提前致谢

1 个答案:

答案 0 :(得分:2)

on_ref_press为您提供了args[1]的引用ID,因此您可以使用它:

Label:
    id: sLinksLabel
    text: 'Load Up [ref=http://google.com]some_link[/ref]'
    text_size: self.width, None
    size_hint_y: None
    pos_hint:{'center_x':0.5, 'y': 0.20}
    size: (150, 44)
    markup: True
    on_ref_press:
        import webbrowser
        webbrowser.open(args[1])