Pergunta

Estou usando o QT 5.2 e tenho um QListWidget que exibe uma lista de Strings e quero que o primeiro item (em 0) seja inicialmente definido para ser destacado.Eu tentei o seguinte:

mUi->listWidget->setCurrentRow(0);
    mUi->listWidget->setCurrentItem(mUi->listWidget->item(0),QItemSelectionModel::Select);
    mUi->listWidget->currentItem()->setSelected(true);
    mUi->listWidget->selectionModel()->select(mUi->listWidget->model()->index(0,0, QModelIndex()),QItemSelectionModel::Select); 

Mesmo que o item esteja selecionado, ele não será destacado.Se, é claro, eu navegar até o item usando o mouse (clique) ou o teclado (tecla tab), ele será destacado, mas quero que seja destacado inicialmente sem usar o mouse ou o teclado.Como fazer isso?Desde já, obrigado.

Foi útil?

Solução

Você só precisa definir o foco para a lista:

if (ui->listWidget->count() > 0) {
  ui->listWidget->item(0)->setSelected(true);
}
ui->listWidget->setFocus();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top