如何将QModelIndex设置为QListView

时间:2019-05-14 19:25:36

标签: qt

我真的是QT的菜鸟,所以对我好一点 所以我有2个QListviews 1.时间表 2.日期列表 我想做的是,当我在时间表中选择一个项目时,将在日期列表中选择相同的索引,然后我会将数据发送到日期时间编辑

我尝试使用该QAbstractItemmodel模型-> index(row,column); 和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 :(得分:0)

我只需要学习语法来创建新的QIndexModel

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

所以我使用index1的相同行值,但将其分配给第二个QListview