0

我收到一个带有参数(当前,总计)的信号,每次我想改变 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);
}

进度条没有按值更改,但保持不变?谁能指导我找出我的错误

4

0 回答 0