【问题标题】:How can I make a hyperlink in kivy?如何在 kivy 中创建超链接?
【发布时间】:2014-04-18 14:53:39
【问题描述】:

如何创建在 Kivy 中打开网络浏览器的链接?我试过将网址放在标签中,但这当然行不通。我希望它专门用于 android 应用程序,并允许用户单击它以打开 Web 浏览器到该链接。

【问题讨论】:

    标签: python-2.7 hyperlink kivy


    【解决方案1】:

    使用webbrowser,它已经在桌面上运行,我们的 iOS / Android 工具链已经为它实现了一个后端。即,使用它,它可以在任何地方工作:

    import webbrowser
    webbrowser.open("http://kivy.org/")
    

    【讨论】:

      【解决方案2】:

      您需要使用ref 标记标记使文本可点击(有关详细信息,请参阅markup documentation),然后将其绑定到在右侧页面打开网络浏览器的函数。在桌面上你可以使用 webbrowser 模块,在 android 上你会想用 pyjnius 调用 android 的正常功能。有一个预先编写的示例说明如何做到这一点here

      这可能会出现在plyer 项目中,它将提供一种跨平台的方式,可以在任何受支持的系统上使用单个 python 界面打开正确的 Web 浏览器。不过还没有添加。

      【讨论】:

      • webbrowser 调用也在 android 下工作。你不需要为此做任何事情
      【解决方案3】:

      现在我将它作为超链接的完美代码......你只需要使用实例和函数这里是代码:

      #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()

      【讨论】:

        【解决方案4】:

        我知道这是一个旧线程,但我花了很长时间才解决这个问题,所以我想也许其他人可能会从中受益。它远非完美,但我制作了一个超链接小部件。

        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)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-13
          • 2013-03-06
          • 2011-04-15
          • 1970-01-01
          • 2012-11-07
          • 1970-01-01
          相关资源
          最近更新 更多