首页 > 解决方案 > 将 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 中?

标签: c++qt

解决方案


您不能将对象变成名称。它QString需要一个显示名称。如果您还想将对象存储在组合框中,请执行以下操作:

foreach ( plavavideo &item, listaPlacavideo ) {
    ui->box_fonte->addItem( item.getName(), item );
}

这将需要placavideo是一个可用的元类型QVariant


推荐阅读