Я создал QTableView, как показано ниже, и хочу выбрать верхний элемент в качестве выбора по умолчанию.Как выбрать верхний элемент QTableView
proxyModel = new QSortFilterProxyModel(this);
proxyModel->setSourceModel(d->model);
d->ui->projects->setModel(proxyModel);
d->ui->projects->setSortingEnabled(true);
proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
proxyModel->setFilterKeyColumn(-1);
connect(d->ui->projects->model(),SIGNAL(dataChanged(QModelIndex,QModelIndex)),d,SLOT(selectTopOne()));
connect (d->ui->search_phrase, SIGNAL(textChanged(QString)),
proxyModel, SLOT(setFilterWildcard(QString)));
Обратите внимание, что d-> ui-> Проекты представляет свою QTableView. и d-> ui-> projects - это текстовое редактирование для захвата строки поиска.
Я попытался выбрать верхний элемент моего представления таблицы, вызвав слот selectTopOne через signalChanged signala. Но это не призыв к слоту.
И я попытался выбрать строку с Qmodelindex (0,0). Но это тоже не сработало.
EDIT:
Это как мой QTableView появляется в настоящее время.
Это то, что мне нужно сделать. Мне нужно выбрать первую строку автоматически.
Согласно Редактирование текста на вершине пунктов QTableView отфильтрованы. Я хочу также выбрать верхний элемент в то время.
Вы уверены, что ваш "selectTopOne()" называется? – Apin
Это SLOT и подключен к dataChanged SIGNAL модели. Я отлаживаю код. Но точка останова внутри selectTopOne() не попала. –
Так что проблема в том, что ваш selectTopOne не уволен. Что такое тип d-> ui-> projects (вы сказали текстовое поле, но я не понимаю, что такое текстовое поле)? – Apin