Obtendo texto de uma View QlistView
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?
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