• 7740阅读
  • 11回复

进度条 [复制链接]

上一主题 下一主题
离线aofy
 

只看楼主 倒序阅读 楼主  发表于: 2010-09-03
— 本帖被 XChinux 执行加亮操作(2010-09-03) —
各位大侠,请问一个进度条问题。
如果对于
void process()
我想在运行process()是就启动进度条,当process()运行完后,进度条消失,我使用的是qtimer
connect(timer,SIGNAL(timeout()), this, SLOT(doProgress()));
结果只是在process()结束时,进度条从0突然变为100,在process()运行过程中进度条不变化,请问各位大侠,有什么解决方法吗?谢谢!
离线XChinux

只看该作者 1楼 发表于: 2010-09-03
不是这样用的。你应该在process()函数里,根据进度更新进度条的值(记住调用QApplication::processEvents(),以即时更新显示)。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线aofy

只看该作者 2楼 发表于: 2010-09-03
回 1楼(XChinux) 的帖子
谢谢!
但如何在process()里面设置进度条呢,我是这样做的,
                    progress->setValue(step);
                    QApplication::processEvents();
这样做不对,但要如何做呢,要加一个循环吗,请问循环怎么加呢。
谢谢
离线aofy

只看该作者 3楼 发表于: 2010-09-03
我的process()是个过程处理函数,里面没有循环,请问如何在process()里面加上可以根据进度变化的进度条呢?谢谢
离线liang6
只看该作者 4楼 发表于: 2011-02-25
求解
离线luoyang

只看该作者 5楼 发表于: 2011-02-25
即时更新呗
离线luoyang

只看该作者 6楼 发表于: 2011-02-25
void Dialog::updateDataTransferProgress(
        qint64 readBytes,qint64 totalBytes)
{
    ui->progressBar->setMaximum(totalBytes);
    ui->progressBar->setValue(readBytes);

}
离线roywillow

只看该作者 7楼 发表于: 2011-02-25
引用第3楼aofy于2010-09-03 10:55发表的  :
我的process()是个过程处理函数,里面没有循环,请问如何在process()里面加上可以根据进度变化的进度条呢?谢谢

那就在做完一些步骤后就更新一遍进度条的值?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 8楼 发表于: 2011-02-25
类似于ui->progressBar->setValue(i/count*100);这样的方法根本没用,进度条不动,程序完成显示100。加上QApplication::processEvents()这句还是没用,进度条还不动。想用进度条还得需要多线程帮忙!
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线luoyang

只看该作者 9楼 发表于: 2011-02-25
回 8楼(jdwx) 的帖子
想要进度条即时更新不用多线程也可以完成吧~~·
void Dialog::updateDataTransferProgress(
        qint64 readBytes,qint64 totalBytes)
{
    ui->progressBar->setMaximum(totalBytes);
    ui->progressBar->setValue(readBytes);

}
connect(sender,SIGNAL(readyRead()),this,SLOT(processPendingDatagram()));
我是这样做的~~~
离线luoyang

只看该作者 10楼 发表于: 2011-02-25
我自己做一个ftp下载~~~就用我上面的方法实现的进度条的更新~~~
离线jdwx

只看该作者 11楼 发表于: 2011-02-25
哦我说吗(ftp),读写很多文件时肯定不行,进度条就是不动!
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个