// 向上移动一行
void moveUp(int idx)
{
if (idx <= 0)
return;
beginMoveRows(QModelIndex(), idx, idx, QModelIndex(), idx-1);
Element item = vec.at(idx);
vec.insert(vec.begin() + (idx-1), item);
vec.erase(vec.begin() + (idx+1));
endMoveRows();
}
// 向下移动一行
void moveDown(int idx)
{
if (idx < 0 || idx + 1 > vec.size() - 1)
return;
// beginMoveRows是插入在目标行的前面,所以需要加2
beginMoveRows(QModelIndex(), idx, idx, QModelIndex(), idx+2);
Element item = vec.at(idx);
vec.insert(vec.begin() + (idx+2), item);
vec.erase(vec.begin() + idx);
endMoveRows();
}
beginMoveRows/endMoveRows用法
于 2023-04-26 16:48:45 首次发布