appendRow(item1); item1->appendRow(new QStandardItem("Apple")); ...-QT开发中文网" />

QT开发中文网

model = new QStandardItemModel(); QStandardItem *rootItem = model->invisibleRootItem(); // 添加子项 QStandardItem *item1 = new QStandardItem("Fruit"); rootItem->appendRow(item1); item1->appendRow(new QStandardItem("Apple")); ...

在使用 QStandardItemModel 时,如果没有设置表头,Qt 会自动创建一个默认的表头。在你的代码中,由于没有调用 setHorizontalHeaderLabels() 方法来明确指定表头,所以 Qt 为你提供了一个默认的单个列名 “1”。

解决方法

如果希望自定义表头,可以在创建模型之后调用 setHorizontalHeaderLabels() 方法来设置你想要的标题。例如:

// 创建标准项模型
model = new QStandardItemModel();
model->setHorizontalHeaderLabels(QStringList() << "Category" << "Details");

// 添加根节点
QStandardItem *rootItem = model->invisibleRootItem();

// 添加子项
QStandardItem *item1 = new QStandardItem("Fruit");
rootItem->appendRow(item1);

// 在此处可以添加额外的数据列,如“Details”
item1->appendRow(new QStandardItem("Apple"));
item1->appendRow(new QStandardItem("Banana"));

ui->treeView->setModel(model);

总结

  • 默认表头:当不设定任何标题时,QStandardItemModel 会生成一个默认的标识(例如 “1”)。
  • 自定义表头:通过调用 setHorizontalHeaderLabels() 可以提供更具描述性的列名。

这样就能去掉“1”这个默认表头,使用你自己定义的名称。如果你只需要一列,仍然可以将其设置为具有更合适名称的单列。


内容由零声教学AI助手提供,问题来源于学员提问

目录导航
  • 解决方法
  • 总结
  • 本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
    转载请注明出处:appendRow(item1); item1->appendRow(new QStandardItem("Apple")); ...">https://qt.0voice.com/?id=12985

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

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

    联系我们

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

    微信号:3007537140

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

    关注我们
    x

    注册

    已经有帐号?