c++ - 将 QList 转换为 QStringList 以插入 QComboBox
问题描述
我需要将项目插入 ComboBox,但要这样做,我需要有一个 QStringList 而不是 QList。
在我的 .hi 中有一个对象的 QList。
QList<placavideo> listaPlacavideo;
在我的 .cpp 我有实现:
placavideo placavideo1;
placavideo1.setNome("EVGA NVIDIA GeForce RTX 2080");
listaPlacavideo.insert(0,placavideo1);
我已经根据另一个问题尝试了这种转换,但它不起作用:
void intcomputer::on_box_placavideo_activated(const QString &arg1)
{
QStringList listaPlacavideos;
foreach(placavideo *item, listaPlacavideo)
listaPlacavideos << item;
ui->box_fonte->addItems(listaPlacavideos);
}
问题是,如何将 listaPlacavideo 中的项目插入到 QStringList 中,以便将整个 QStringList 插入到 ComboBox 中?
解决方案
您不能将对象变成名称。它QString
需要一个显示名称。如果您还想将对象存储在组合框中,请执行以下操作:
foreach ( plavavideo &item, listaPlacavideo ) {
ui->box_fonte->addItem( item.getName(), item );
}
这将需要placavideo
是一个可用的元类型QVariant
。
推荐阅读
- javascript - TypeError: Object of type Undefined is not JSON serializable
- javascript - How to insert a javascript variable into a php code?
- pandas - Unable to import Pandas because of Numpy
- php - DOMDocument::loadXML(): I/O 警告:加载外部实体失败
- python - 从 wikisource XML 转储文件中提取文本
- python-3.x - 如何将 AWS Glue df 列数据写入单独的 html 文件
- python - 无法更新模型,因为“id 已存在”
- javascript - Ant Design 在 react js 项目中不起作用
- java - 方法调用“getMessage”可能会产生“NullPointerExeption”
- java - 休眠在数据库端设置默认值的正确方法