pyqt程序中使用了进度条,但是进度条并不是平滑的增加的!
class MyThread_Follow(QThread): # 建立一个任务线程类
"""
处理跟卖链接的多线程
无参数,直接调用外部函数
返回值:当处理代码无异常时,发射一个True信号,否则发送False信号
"""
signal = pyqtSignal(bool) # 设置触发信号传递的参数数据类型,这里是字符串
progressBar_signal = pyqtSignal(int)
def __init__(self):
super(MyThread_Follow, self).__init__()
def run(self):
try:
listing_list = get_path(".\\数据\\Listing表\\")
store_list = get_path(".\\数据\\管理库存表\\")
age_list = get_path(".\\数据\\库龄表\\")
status_list = get_path(".\\数据\\销售状态表\\")
band_list = get_path(".\\数据\\匹配捆绑表\\")
self.progressBar_signal.emit(10)
bind = load_bind(band_list[0])
self.progressBar_signal.emit(20)
status = load_status(status_list[0])
self.progressBar_signal.emit(30)
convert_func(listing_list)
all_listings = load_all_listing(listing_list)
self.progressBar_signal.emit(50)
convert_func(store_list)
all_stores = load_all_store(store_list)
self.progressBar_signal.emit(80)
all_ages = load_all_age(age_list)
self.progressBar_signal.emit(90)
result = deal_data(all_listings, all_ages, all_stores, status, bind)
self.progressBar_signal.emit(95)
save_data(result)
self.progressBar_signal.emit(100)
self.signal.emit(True)
except:
logging.error("----------文件读取错误,请核对数据!---------", exc_info=True)
self.signal.emit(False)
我这里的思路是直接自定义信号,然后返回给进度条组件,导致的问题是当处理数据很费时时,进度条停止了,完成后又突然增加一大截。
我希望的效果是根据处理的时间均匀的分配进度条进度。