Pergunta

Eu tenho uma aula personalizada que criei, digamos myclass. Agora, como adicionar uma referência à referência do MyClass como segundo parâmetro na caixa de combinação abaixo:

this-> ui-> ComboBox-> additem ("item-1",);

O objetivo é que, quando o item alterado é disparado, quero obter essa instância de classe específica de MyClass e processar de acordo.

Foi útil?

Solução

Primeiro você precisa usar Q_DECLARE_METATYPE(MyClass*), para que o tipo possa ser usado em QVariant. Então você pode adicionar o item como este:

this->ui->comboBox->addItem("item-1", QVariant::fromValue(myClass));

E recupere:

this->ui->combobox->itemData(x).value<MyClass*>();

Outras dicas

A resposta acima da sintaxe está ligeiramente incorreta,

Use Q_DECLARE_METATYPE (MyClass*), no arquivo de cabeçalho MyClass, para que o tipo possa ser usado no QVariant.

Adicione o item como este:

this-> ui-> ComboBox-> addItem ("item-1", qVariant :: FromValue (myClass));

E recupere: this-> ui-> ComboBox-> itemData (x) .Value ();

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top