python下载kivy_下载Kivy中的进度条

本文档介绍了一个Python Kivy应用程序,该应用旨在下载文件并在Kivy界面上显示进度。作者遇到的问题是如何将下载进度与Kivy的UI元素绑定,以便在下载过程中更新进度条。代码中展示了如何打开弹出窗口并更新文本,但需要进一步修改以适配进度条组件。
摘要由CSDN通过智能技术生成

我正在尝试建立一个应用程序,可以下载一个文件,其进度可以在kivy应用程序上跟踪。在

我已经查看了示例here和here的下载进度。

这是我的代码:from kivy.app import App

from kivy.uix.button import Button

from kivy.uix.boxlayout import BoxLayout

from kivy.uix.label import Label

from kivy.uix.textinput import TextInput

from kivy.uix.popup import Popup

from kivy.factory import Factory

from kivy.properties import ObjectProperty

from kivy.clock import Clock

import urllib

URL = "http://s9.videozoo.me/S/saenai_heroine_no_sodatekata_flat_-_11.mp4?st=Ow7pwXbRt6vPWE-kr5Sn1A&e=1498847899&start=0"

class PopupBox(Popup):

pop_up_text = ObjectProperty()

def update_pop_up_text(self, p_message):

self.pop_up_text.text = p_message

class MyApp(App):

# layout

def show_popup(self):

self.pop_up = Factory.PopupBox()

self.pop_up.update_pop_up_text('Running some task...')

self.pop_up.open()

def build(self):

layout = BoxLayout(padding=10, orientation='vertical')

btn1 = Button(text="OK")

btn1.bind(on_press=self.buttonClicked)

layout.add_widget(btn1)

self.lbl1 = Label(text="test")

layout.add_widget(self.lbl1)

self.txt1 = TextInput(text='', multiline=False)

layout.add_widget(self.txt1)

return layout

# button click function

def buttonClicked(self, btn):

self.lbl1.text = "You wrote " + self.txt1.text

self.show_popup()

self.download_file(URL)

self.pop_up.dismiss()

def download_file(self, url):

u = urllib.request.urlopen(url)

meta = u.info()

metaInfo = str(meta).split()

fileTotalbytes = int(metaInfo[46])

data_blocks = []

total = 0

while True:

block = u.read(1024)

data_blocks.append(block)

total += len(block)

hash = ((60 * total) // fileTotalbytes)

print("[{}{}] {}%".format('#' * hash, ' ' * (60 - hash), int(total / fileTotalbytes * 100)), end="\r")

if not len(block):

break

data = b''.join(data_blocks) # had to add b because I was joining bytes not strings

u.close()

# run app

if __name__ == "__main__":

MyApp().run()

但是,我很困惑如何将download_file函数与kivy widget功能绑定,以便使其正常工作。如何适当地修改print函数,使其与widget一起工作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值