这是我的代码
QList<QString> IPs; //IP address
...
connect(this, SIGNAL(addItems(QTreeWidgetItem*)), this,
SLOT(addNewItemToTree(QTreeWidgetItem*)));
void MainWindow::startPing()
{
for (int i = ipStart; i <= ipEnd; i++)
{
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setText(0, IPs.at(i));
if (PingHost(IPs.at(i)))
{
item->setText(1, "online");
}
else
{
item->setText(1, "offline");
}
emit addItems(item);
}
}
void MainWindow::addNewItemToTree(QTreeWidgetItem *item)
{
items.append(item);
ui->treeWidget->addTopLevelItem(item);
}
PingHost
是一个函数,它的运行时间可能超过 2 秒。
我编译并运行了这个程序,没有任何错误或警告。
我想item
会treeWidget
一一添加(添加了一项,2秒后会添加另一项。)
但是,当我运行它时,我发现Item
经过漫长的等待后,所有内容都已添加一次。为什么?
如何items
按照我的想法添加这些内容?