2015-09-02 3 views
0

Есть ли способ перетаскивать строки из 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 даже вызвал для вертикальных элементов заголовка.

+0

Я удивляюсь, почему я спускаюсь - голосовал по этому вопросу. Если кто-то думает, что вопрос глуп, чем просьба указать на мою глупость, я могу решить эту проблему. –

ответ

0

Добавляет ли acceptDrops (true) в помощь QTableView?

+0

Нет, поскольку 'setAcceptDrops (bool on)' будет включать или отключать падение в QTableView. На данный момент я беспокоюсь только о том, чтобы позволить пользователю перетаскивать вещи из виджета. –

+0

Попробуйте это, особенно бит, где они начинают действие перетаскивания. [Ссылка] (http://doc.qt.io/qt-5.5/dnd.html). Вы можете установить фильтр событий в виджетах, на которые вы ожидаете, чтобы заголовки были удалены, и проверить отправителя? –

 Смежные вопросы

  • Нет связанных вопросов^_^