Pergunta

Eu tenho um ponteiro para terceiros QListView objeto, que está simplesmente exibindo linhas de texto. Qual é a melhor maneira de se apossar dessa série de texto?

Foi útil?

Solução

O modelo, acessível por QListView::model(), segura os itens. Você pode fazer algo assim:

QListView* view ; // The view of interest

QAbstractItemModel* model = view->model() ;
QStringList strings ;
for ( int i = 0 ; i < model->rowCount() ; ++i )
{
  // Get item at row i, col 0.
  strings << model->index( i, 0 ).data( Qt::DisplayRole ).toString() ;
}

Você também menciona que gostaria de obter as cordas atualizadas quando o texto for escrito - você pode fazer isso conectando o modelo dataChanged() sinalize para sua função que extrai strings. Ver QAbstractItemModel::dataChanged().

Outras dicas

Você pode pedir ao objeto QLISTVIEW seu qmodelindex root e usá -lo para iterar sobre as diferentes entradas usando os métodos de irmãos/filhos. Você pode acessar o texto associado a cada índice chamando o método de dados no índice com a função especificada como o QT :: DisplayRole.

Para mais detalhes, consulte a seguinte documentação:

QabstractItEmView - Classe de pai para QLISTVIEW

Qmodelindex

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