如何在Kivy中创建一个用于打开Web浏览器的链接?我试过把网址放在标签上,但当然这不起作用。我希望它专门用于Android应用程序,并允许用户单击它以打开该链接的Web浏览器。
答案 0 :(得分:4)
您需要使用ref
标记标记来查看文本(有关详细信息,请参阅markup documentation),然后将其绑定到在右侧页面打开Web浏览器的功能。在桌面上你可以使用webbrowser模块,在android上你要用pyjnius调用android的普通函数。有一个预先写好的例子,说明如何here。
这可能会出现在plyer项目中,这将提供一种跨平台的方式,可以在任何支持的系统上使用单个python接口打开正确的Web浏览器。但它还没有添加。
答案 1 :(得分:3)
使用webbrowser,它已在桌面上运行,我们的iOS / Android工具链已实现了后端。即,使用它,它将无处不在:
import webbrowser
webbrowser.open("http://kivy.org/")
答案 2 :(得分:1)
现在我为超级链接制作它的实现代码...你只需要使用insance和函数这里是代码:
#import necessary library
import webbrowser
def any_Function(instance):
webbrowser.open('http://www.anywebsite.domain')
class TutorialApp(App):
def build(self):
btn1 = Button(text='Open Link' , size=(200,50), size_hint=(None, None))
btn1.bind(on_press=any_Function)
#Bind function with button
return btn1
if __name__ == '__main__':
TutorialApp().run()

答案 3 :(得分:0)
我知道这是一个旧线程,但是花了我一段时间才解决了这个问题,所以我认为也许其他人可能会受益。它远非完美,但我制作了一个超链接小部件。
from kivy.uix.label import Label
import webbrowser
"""A kivy widget that implements a hyperlink"""
class Hyperlink(Label):
def __init__(self, **kwargs):
self.target = kwargs.pop('target')
kwargs['markup'] = True
kwargs['color'] = (0,0,1,1)
kwargs['text'] = "[u][ref=link]{}[/ref][/u]".format(kwargs['text'])
kwargs['on_ref_press'] = self.link
super().__init__(**kwargs)
def link(self, *args):
webbrowser.open(self.target)