Pergunta

Eu tenho um QTreeWidget com várias colunas, acrescento QTreeWidgetItems a ele. Eu tento fazer a segunda coluna contém um valor numérico para cada Item para que eu possa classificar os itens por este valor

QTreeWidgetItem has a method called setData(int column, int role, QVariant(data))

Não consigo encontrar qualquer documentação sobre o que este argumento role é. Tudo o que sei é que se eu configurá-lo para 1 ou 2, algo que aparece na coluna, se eu configurá-lo para 0 ou> = 3, não mostra nada até na coluna, independentemente, os números sempre acabam sendo classificados em ordem alfabética, que é errado.

Foi útil?

Solução

Você pode usar o Qt :: UserRole para fins específicos de aplicação. Desde esses dados é um QVariant, você pode criar um QList para definir vários dados e depois lançá-lo aos QVariant e defina os dados.

Aqui está um exemplo:

QTreeWidgetItem* item = new QTreeWidgetItem();
QList<QVariant> dataList;
dataList.append("data 1");
dataList.append("data 2");
QVariant data(dataList);
item->setData(0, Qt::UserRole, data);

Outras dicas

A documentação relevante pode ser encontrado em Qt :: ItemDataRole (encontrado através QAbstractItemModel :: setDate ) . As funções são usadas para especificar o que os dados que você está passando deve ser usado para. Você pode usar papéis diferentes para definir a dica de ferramenta, fonte ou a cor de um item, entre outras coisas.

Note que item->text() é uma conveniência equivalente a item->data(Qt::DisplayRole).toString()

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