根据你提供的代码,有以下几个问题:
在
for
循环中创建了一个QTreeWidgetItem
对象itemson
,但是没有将其添加到父节点或者树形控件中。你可以使用paritem->addChild(itemson)
将子项添加到父节点中。在设置子项的文本和图标时,需要使用正确的列索引。根据你的代码,似乎你定义了一些列索引常量(例如
colItem
和colItemType
)。请确保这些常量与实际的列索引值相匹配。在设置日期时间文本时,可以使用
tm.toString()
方法将QDateTime
对象转换为字符串,并将其作为参数传递给setText()
方法。
下面是修正后的代码片段:
QStringList filenames = QFileDialog::getOpenFileNames(this, "选择图片", "", "(*.jpg);(*.png)");
QTreeWidgetItem* item, * paritem;
item = ui->treeWidget->currentItem();
if (item == nullptr) {
QMessageBox::critical(this, "警告", "未选择任何项!!!");
return;
}
if (item->type() == itImageItem) {
paritem = item->parent();
}
else
paritem = item;
for (int i = 0; i < filenames.size(); i++) {
QString str = filenames[i];
QFileInfo info(filenames[i]);
QDateTime tm = info.lastModified();
QTreeWidgetItem* itemson = new QTreeWidgetItem(itImageItem);
itemson->setText(colItem, info.fileName());
itemson->setText(colItemType, "Image Item");
itemson->setText(colDate, tm.toString()); // 设置日期时间文本
itemson->setIcon(colItem, QIcon(":/new/prefix1/imageico/pic.png"));
paritem->addChild(itemson); // 将子项添加到父节点中
}
请注意,以上修正仅基于你提供的代码片段进行的。如果有其他相关代码或变量定义,请确保其正确性和一致性。
内容由零声教学AI助手提供,问题来源于学员提问