【问题标题】:Kivy - Making a button/thumbnail with URL image as backgroundKivy - 制作以 URL 图像为背景的按钮/缩略图
【发布时间】:2012-07-10 16:06:46
【问题描述】:

我最近开始使用 Kivy,但遇到了问题。我需要制作一个以 URL 图像作为背景的按钮/缩略图。我在 Kivy 用户论坛here 上得到了一些帮助,但我还是有点卡住了。这是我的那部分代码:

for image_set, image_type in zip(categorized_images, image_types):
    layout = GridLayout(cols=2, size_hint=(None, None))
    layout.bind(minimum_height=layout.setter('height'))
    scroll_view = ScrollView(size_hint=(None, None), size=(320, 200))
    section = AccordionItem(title='%s' % image_type)
    layout.add_widget(back_button1)

    for image_path in image_set:
        layout.add_widget(AsyncImage(source="http://www.example/"'%s' % image_path,\
                                  size_hint=(None, None), size=(160, 160)))

    scroll_view.add_widget(layout)
    section.add_widget(scroll_view)
    accordion.add_widget(section)

我现在所拥有的只是一堆正在创建的图像,但我需要创建缩略图以生成完整大小的图像。除此之外,我还有 Kivy 链接中提到的 builder.load_string 部分和 ButtonBehavior 类部分。我只是不知道如何在那个“for循环”中实现。是否可以将 UrlBut 实例视为小部件?

【问题讨论】:

    标签: android python ios kivy


    【解决方案1】:

    缩略图到全图

    Make UrlBut 在实例化时创建并存储缩略图。你可以用PIL 来做这个,按照这个教程http://andrius.miasnikovas.lt/2010/04/creating-thumbnails-from-photos-with-python-pil/

    然后,让on_press 方法(或等效方法)创建一个包含完整尺寸图像的弹出窗口或叠加层。

    将 UrlBut 视为小部件

    阅读:http://kivy.org/docs/api-kivy.lang.html#syntax-of-template

    Kivy 文档说,在 kv 文件中定义的模板可以像这样在您的 Python 代码中实例化(我正在修改该链接中给出的示例):

    您的 kv 语言模板:

    [UrlBut@ButtonBehavior+AsyncImage]:
        source: ctx.source
        button_grab: True
        on_press: eval(ctx.on_press)
    

    然后在 Python 中,您可以使用以下命令实例化模板:

    from kivy.lang import Builder
    
    urlbut1 = Builder.template('UrlBut',source='http://lorempixel.com/400/200')
    
    # create a second template with a different image
    urlbut2 = Builder.template('UrlBut', source='http://lorempixel.com/400/200')
    # and use urlbut1 and urlbut2 as other widgets.
    

    然后,您可以使用 for 循环自动执行此操作:

    for image_path in image_set:
            layout.add_widget(Builder.template('UrlBut',source="http://www.example/"'%s' % image_path)
    

    【讨论】:

      猜你喜欢
      • 2011-12-29
      • 2021-04-04
      • 2015-10-07
      • 2013-06-27
      • 2015-07-15
      • 2016-02-03
      • 2011-02-19
      • 2012-09-24
      • 1970-01-01
      相关资源
      最近更新 更多