изменить цвет одного индекса QListView при двойном щелчке по нему

Во-первых, я новичок в Qt:
я хотел бы изменить цвет текста записи QListView при двойном щелчке по ней, но я не совсем уверен, как это сделать. Я могу получить индекс элемента, дважды щелкнув его:

void Widget::on_HostList_doubleClicked(const QModelIndex &index)
{
    QMessageBox msgBox;
    msgBox.setText(QString::number(index.row()));
    msgBox.exec();
}

Как я могу это сделать?


person stdcerr    schedule 30.09.2017    source источник


Ответы (1)


model->setData(vIndex, QBrush(Qt::red), Qt::ForegroundRole);

Это то, что я нашел

person rostamn739    schedule 30.09.2017
comment
Я пытался использовать его с моделью типа QAbstractItemModel*, но получаю error: no matching function for call to 'QAbstractItemModel::setData(int&, QBrush, Qt::ItemDataRole)' model->setData(row, QBrush(Qt::red), Qt::ForegroundRole); - person stdcerr; 30.09.2017
comment
@cerr измените model->setData(row, QBrush(Qt::red), Qt::ForegroundRole); на model->setData(index, QBrush(Qt::red), Qt::ForegroundRole);. Вы должны передать индекс, а не строку. - person eyllanesc; 30.09.2017
comment
@eyllanesc Я пробовал это безуспешно, цвет не меняется: void Widget::on_HostList_doubleClicked(const QModelIndex &index) { QAbstractItemModel *model = ui->HostList->model(); model->setData(index,QBrush(Qt::red), Qt::ForegroundRole); } - person stdcerr; 30.09.2017
comment
@cerr Я думаю, что ваш проект небольшой, вы можете поделиться своим проектом через github, диск или что-то подобное. - person eyllanesc; 30.09.2017
comment
@eyllanesc правильно, я поделился своим проектом на Google Диске, см.: drive.google.com/drive/folders/ - person stdcerr; 01.10.2017