Есть ли способ перетаскивать строки из QTableView?Внешнее перетаскивание QTableView
Я знаю, как внутренне перемещение столбцов в пределах QTableView
настройки некоторых свойств на представлении:
table_view_->horizontalHeader()->setSectionsMovable(true);
table_view_->horizontalHeader()->setDragEnabled(true);
table_view_->horizontalHeader()->setDragDropMode(QAbstractItemView::InternalMove);
Идущий через документацию на QAbstractItemView::DragDropMode
, я интуитивно ожидал моей следующей попытки разрешить внешний увлекая вертикальных элементов заголовка :
table_view_->verticalHeader()->setSectionsMovable(true);
table_view_->verticalHeader()->setDragEnabled(true);
table_view_->verticalHeader()->setDragDropMode(QAbstractItemView::DragOnly);
Тем не менее, я ограничен только внутренним перемещением.
Учитывая this article я получен свою собственную модель из QSqlRelationalTableModel
и добавил Qt::ItemIsDragEnabled
флаг функции flags
для всех вертикальных индексов заголовков:
Qt::ItemFlags MyRelationalTableModel::flags(const QModelIndex &index) const
{
Qt::ItemFlags defaultFlags = QSqlRelationalTableModel::flags(index);
if(index.column() == -1 && index.row() > -1) {
qDebug() << "drag enabled.";
return Qt::ItemIsDragEnabled | defaultFlags;
} else {
qDebug() << "not drag enabled.";
}
return defaultFlags;
}
Это ничего не меняет, и данные отладочные гравюр, flags
WASN 't даже вызвал для вертикальных элементов заголовка.
Я удивляюсь, почему я спускаюсь - голосовал по этому вопросу. Если кто-то думает, что вопрос глуп, чем просьба указать на мою глупость, я могу решить эту проблему. –