Czy istnieje sposób na pobranie danych z wybranego wiersza z widoku tabeli? użyłem QModelIndexList ids = ui->tableView->selectionModel()->selectedRows();
, który zwraca listę indeksów wybranych wierszy. Nie potrzebuję indeksu. Potrzebuję danych z każdej komórki z wybranego wiersza.Qt C++ Pobieranie danych z każdej komórki wybranego wiersza z QTableView
7
A
Odpowiedz
2
QVariant data(const QModelIndex& index, int role) const
jest używany do zwracania danych. Jeśli potrzebujesz, aby uzyskać dane robisz to tutaj na podstawie QModelIndex
wiersza i kolumny i pobierania go z jakiegoś pojemnika, może
std::vector<std::vector<MyData> > data;
Trzeba zdefiniować takie mapowanie i używać go w data()
i setData()
funkcji do obsługi interakcji z bazowe dane modelu.
Alternatywnie QAbstractItemModel
i QTreeView
oferuje sposób przypisywania swojej klasy IE TreeItem
każdemu QModelIndex
, więc można pobierać następny wskaźnik do danych każdego z wykorzystaniem static_cast
wskaźnik wrócił z QModelIndex.internalPointer() funkcji:
TreeItem *item = static_cast<TreeItem*>(index.internalPointer());
więc wtedy można stworzyć pewne odwzorowanie:
// sets the role data for the item at <index> to <value> and updates
// affected TreeItems and ModuleInfo. returns true if successful
// otherwise returns false
bool ModuleEnablerDialogTreeModel::setData(const QModelIndex & index,
const QVariant & value, int role) {
if (role
== Qt::CheckStateRole&& index.column()==ModuleEnablerDialog_CheckBoxColumn) {
TreeItem *item = static_cast<TreeItem*>(index.internalPointer());
Qt::CheckState checkedState;
if (value == Qt::Checked) {
checkedState = Qt::Checked;
} else if (value == Qt::Unchecked) {
checkedState = Qt::Unchecked;
} else {
checkedState = Qt::PartiallyChecked;
}
//set this item currentlyEnabled and check state
if (item->hierarchy() == 1) { // the last level in the tree hierarchy
item->mModuleInfo.currentlyEnabled = (
checkedState == Qt::Checked ? true : false);
item->setData(ModuleEnablerDialog_CheckBoxColumn, checkedState);
if (mRoot_Systems != NULL) {
updateModelItems(item);
}
} else { // every level other than last level
if (checkedState == Qt::Checked || checkedState == Qt::Unchecked) {
item->setData(index.column(), checkedState);
// update children
item->updateChildren(checkedState);
// and parents
updateParents(item);
7
możesz spróbować tej
int rowidx = ui->tblView->selectionModel()->currentIndex().row();
ui->txt1->setText(model->index(rowidx , 0).data().toString());
ui->txt2->setText(model->index(rowidx , 1).data().toString());
ui->txt3->setText(model->index(rowidx , 2).data().toString());
ui->txt4->setText(model->index(rowidx , 3).data().toString());
1
Try this for getting data. selectedRows(0) indicates first column of selected rows, selectedRows(1) indicates second column of selected rows row likewise
QItemSelectionModel *select = ui->existingtable->selectionModel();
qDebug()<<select->selectedRows(0).value(0).data().toString();
qDebug()<<select->selectedRows(1).value(0).data().toString();
qDebug()<<select->selectedRows(2).value(0).data().toString();
qDebug()<<select->selectedRows(3).value(0).data().toString();
Powiązane problemy
- 1. QTableView ma niechcianych wyboru w każdej komórce
- 2. Qt - Czyszczenie zawartości QTableView
- 3. Uzyskiwanie danych z wybranego wiersza datagridview i które wydarzenie?
- 4. jak uzyskać dane z wybranego wiersza z datagridview
- 5. Szyny: pobieranie danych z tabeli dla każdej iteracji pętli
- 6. Qt Ukryj kolumnę w QTableView
- 7. QTableView przewiń do nowego dodanego wiersza
- 8. Qt - QTableView - Przycisk klikalny w rzędzie tabeli
- 9. Qt: C++: Jak utworzyć SIGNAL/SLOT podczas wybierania wiersza w QTableView
- 10. QTableView - nie zezwala użytkownikowi na edycję komórki
- 11. Pobieranie danych z pliku XML
- 12. Jak usunąć wiersz/wiersze z qtableview w pyqt?
- 13. Trwa pobieranie znacznika czasu z wiersza hbase
- 14. Zakładki jQuery - pobieranie nowo wybranego indeksu
- 15. Pobieranie danych z python XML
- 16. Pobieranie danych z obiektu ReadableStream?
- 17. Pobieranie danych z plist Info
- 18. ExtJS - Get rowIndex wybranego wiersza
- 19. Qt QTableView, aby mieć tylko pole wyboru tylko kolumna
- 20. QTableView Powiększanie/pomniejszanie
- 21. Pobieranie plików z OpenFileDialog?
- 22. Pobierz wartości kolumn z wybranego wiersza wielokolumny Pole listy dostępu
- 23. Qt: QTableWidget/QTableView zmienne kolory wierszy w pełnej rzutni
- 24. Java MIDI - pobieranie danych z fortepianu?
- 25. Obramowanie wokół każdej komórki w zakresie
- 26. Jak zmienić kolor tła wybranego wiersza datagridview?
- 27. Pobieranie danych z NSData za pomocą Swift
- 28. Najszybszy sposób na wypełnienie QTableView z ramki danych Pandy
- 29. jqGrid gridComplete: - getRowData - uzyskać wartość komórki wiersza z tablicy
- 30. Jak wyświetlić końcówkę narzędzia dla każdej komórki?
Korzystanie 'QModelIndex :: danych (int rolę)' ma sens? – vahancho