パラメータ(Current、total)を含むシグナルを受信しており、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 ¤t, qint64 &total)
{
QXmppTransferJob *job = (QXmppTransferJob*)QObject::sender();
widget_map[job]->progressBar->setMaximum(total);
widget_map[job]->progressBar->setValue(current);
}
プログレスバーは値によって変化していませんが、同じままですか? 私の間違いを見つけるために誰かが私を案内してくれますか