Как установить QModelIndex в QListView - PullRequest
0 голосов
/ 14 мая 2019

Я действительно новичок в QT, так что будь осторожен со мной Итак, у меня есть 2 QListviews 1. TimeList 2. DateList Что я пытаюсь сделать, так это то, что когда я выбираю элемент в списке времени, будет выбран тот же индекс в списке дат, и после этого я отправлю данные для редактирования даты и времени

Я пытался использовать эту модель QAbstractItemmodel-> index (строка, столбец); и createindex, но я не знаю синтаксис так хорошо, поэтому я испортил его

QModelIndex i = ui->TimeList->currentIndex(); //it gets the index when an item is clicked
ui->DateList->setcurrentIndex(i); //it sets the same index in the other QListView
ui->DateList->clearSelection();
ui->DateList->selectionModel()->select(i, QItemSelectionModel::Select); //This highlights the same index in other QListView and it works fine


QTime t = i.data(Qt::DisplayRole).toTime(); // It converts to QTime fine
i = ui->DateList->currentindex(); // i try to change the value of index to get the date
QDate d = i.data(Qt::DisplayRole).toDate(); 

ui->TimeEdit->setTime(t);
ui->DateEdit->setDate(d);

Я понял, что вывод i.data недопустим для QDate, потому что в qDebug так сказано. Так что я предполагаю, что индекс не содержит только значения строк и столбцов, но как назначить его в Datelist, мне не подходит. (: Заранее спасибо

1 Ответ

0 голосов
/ 15 мая 2019

Мне просто нужно было изучить синтаксис для создания новой QIndexModel

QModelIndex i = ui->TimeList->currentIndex();
QModelIndex i2 = ui->DateList->model()->index(i.row(), 0);

Так что я использую то же значение строки из index1, но оно назначено второму QListview

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...