QT开发中文网

QStringList filenames=QFileDialog::getOpenFileNames(this,"选择图片","","(*.jpg);(*.png)"); QTreeWidgetItem *item,*paritem; item=ui->treeWidget->currentItem(); if(item==nullptr){ QMessageBox::critica

根据你提供的代码,有以下几个问题:

  1. for循环中创建了一个QTreeWidgetItem对象 itemson,但是没有将其添加到父节点或者树形控件中。你可以使用 paritem->addChild(itemson) 将子项添加到父节点中。

  2. 在设置子项的文本和图标时,需要使用正确的列索引。根据你的代码,似乎你定义了一些列索引常量(例如 colItemcolItemType)。请确保这些常量与实际的列索引值相匹配。

  3. 在设置日期时间文本时,可以使用 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助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=6135

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?