c++ - 是否可以向 QStandardItem 添加自定义类?

标签 c++ qt

我想知道是否可以向 QStandardItem 添加自定义类。我目前正在做这样的事情

QStandardItem* item_text=  new QStandardItem();
item_text->setText(msg.c_str());

现在假设我有一个类 foo 没有继承自 QVariant 是否可以将它存储在 QStandardItem 中?如果是这样,我将如何存储它然后检索它??

最佳答案

我相信你要找的是

    QStandardItem::setData ( const QVariant & value, int role = Qt::UserRole + 1 )

你可以使用,像这样:

   QStandardItem item;
   item.setData(QVariant(MyClass),Qt::UserRole);

所以我认为您需要做的是将您的自定义类强制转换为 QVariant(如上所示)并设置相应的角色,就像我使用 UserRole 一样。 然后在提取数据时,您可以将其类型转换回您的自定义类。

你也可以通过递增它来保存用户角色:

  item.setData(QVariant(MyClass),Qt::UserRole + 1000);
  item.setData(QVariant(MyNewClass),Qt::UserRole + 1001);

等等。 希望能帮助到你。 :)

关于c++ - 是否可以向 QStandardItem 添加自定义类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21298964/

相关文章:

c++ - 构建自定义 boost 库

c++ - 适当删除QThread

c++ - 通过 new() 调用初始化引用成员

C++:实现一个全局常量,其值由用户给出

c++ - 如何从esp32查找PC local-ip以使用MQTT Node.js服务器

qt - X-Windows、wxWidgets、GTK/Qt 和 OpenGL 有什么区别?

qt - 如何在 QGraphicsview 中平移超出滚动条范围?

c++ - 为什么 C++ 应用程序可能会错误地评估表达式?

c++ - qt 单元测试 QTreeWidgetItem 尚未声明

c++ - 合并两个 QPixmap 的问题