怎么把text文本改为python_如何在TextEdit中主动更改文本

本文档描述了作者在使用PyQt创建一个应用程序时遇到的问题,该应用程序并行下载文件并在TextEdit组件中实时更新每个部分的状态。由于setText方法导致应用程序在下载期间冻结,作者寻求解决方案。代码示例展示了文件的多线程下载和文件大小的计算,但未能在不冻结UI的情况下更新文本框。
摘要由CSDN通过智能技术生成

我在从PyQt主动更新文本编辑框时遇到问题。我想制作一个应用程序,它将下载部分文件(每个部分的新线程,并行下载)并在文本框中更新每个部分的当前状态,但我的应用程序“冻结”下载时间,并在下载完成后设置文本框,尽管如果我打印结果看起来不错,控制台上不会冻结。

我知道这段代码现在“一团糟”,但我改变了很多东西,并尝试了不同的方法。

我将这个“打印”标记为可以正常工作,下面是setText,它冻结了我的应用程序下载时间。

如果是PyQt的“TextEdit”的问题,请告诉我,我会更改它,但我到目前为止,没有找到任何类似的信息。

谢谢!在def supervi(self):

import os

import urllib2

N=2

url = self.__url

dir = self.path

f_name = url.split("/")[len(url.split("/")) - 1]

dir_tmp=dir + "\\TMP." + f_name

if os.path.isdir(dir_tmp) == False:

os.mkdir(dir_tmp)

for n in range(0,N):

with open(dir_tmp+"\\file"+str(n), "w+b") as f:

#f.write("")

pass

data = urllib2.urlopen(url)

file_size = int(data.headers["Content-Length"].strip())

import multiprocessing as mp

data_block = file_size/N

p=mp.Pool(N)

for i in range(0, N):

start = i * data_block

stop = 0

if not i == N - 1:

stop = i * data_block + data_block - 1

else:

stop = file_size

headers = {

"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0",

"Accept-Encoding": "gzip, deflate, sdch",

"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",

"Accept-Language": "pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4",

"Connection": "keep-alive",

"Range": "bytes=" + str(start) + "-" + str(stop)

}

req = urllib2.Request(url, headers=headers)

from main import dziecko

p.apply_async(dziecko,[i,req,dir_tmp])

while True:

sum=0

for n in range(0,N):

sum=sum+os.path.getsize(dir_tmp + "\\file" + str(n))

if not sum < file_size:

from main import del_and_combine

del_and_combine(dir,dir_tmp,f_name,N)

break

for n in range(0,N):

size=os.path.getsize(dir_tmp + "\\file" + str(n))

print size ##################THIS ONE

self.url.setText(str(os.path.getsize(dir_tmp + "\\file0")))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值