Ich habe QTableView wie folgt erstellt und möchte das oberste Element als Standardauswahl auswählen.So wählen Sie das oberste Element von 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)));
Beachten Sie, dass d-> UI-> Projekte meine QTableView darstellt. und d-> ui-> Projekte ist Text bearbeiten verwenden, um Suchzeichenfolge zu greifen.
Ich habe versucht, oberste Element meiner Tabellenansicht auszuwählen, indem ich Slot selectTopOne über das dataChanged-Signal aufruft. Aber es ruft nicht nach Slot.
Und ich habe versucht, Zeile mit Qmodelindex (0,0) zu wählen. Aber es hat auch nicht funktioniert.
EDIT:
Dieses ist, wie mein QTableView jetzt erscheint.
Dieses ist, was ich tun muss. Ich muss die erste Zeile automatisch auswählen.
Nach dem Text Edit auf Artikel von QTableView gefiltert. Ich möchte zu diesem Zeitpunkt auch den Top-Artikel auswählen.
Sind Sie sicher, dass Ihr "selectTopOne()" aufgerufen wird? – Apin
Es ist ein SLOT und mit DataChanged SIGNAL des Modells verbunden. Ich debugge den Code. Aber Breakpoint innerhalb von selectTopOne() nicht getroffen. –
So dass das Problem, dass Ihre selectTopOne nicht ausgelöst. Was ist d-> ui-> Projekte Typ (Sie sagten Textfeld, aber ich verstehe nicht, was ist Textfeld genau)? – Apin