如何在QTreeWidgetItem中更改QProgressBar的值?

时间:2013-07-22 07:55:18

标签: qt

我正在接收带有参数(当前,总数)的信号,并且每次我都想要 改变QTreeWidgetItem内部进度条的值。 那是我的源代码。 我有:

QMap<QXmppTransferJob*, TransferItemWidget*> widget_map;

我在这里添加新项目

void MainWindow::addItem(QXmppTransferJob *job)
{
    QTreeWidgetItem *item = new QTreeWidgetItem(ui->treeWidget);

    widget_map[job] = new TransferItemWidget;
    widget_map[job]->fileNameLabel->setText(job->fileName());
    widget_map[job]->bareJidLabel->setText(job->jid());

    ui->treeWidget->setItemWidget(item,0,widget_map[job]);
}

每次收到信号时都会执行以下插槽:

void MainWindow::progress(qint64 &current, qint64 &total)
{
    QXmppTransferJob *job = (QXmppTransferJob*)QObject::sender();
    widget_map[job]->progressBar->setMaximum(total);
    widget_map[job]->progressBar->setValue(current);
}

进度条没有按价值变化但是保持不变?任何人都可以指导我找到我的错误

0 个答案:

没有答案