Russian Qt Forum
Ноябрь 24, 2024, 16:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Замена стандартного drag курсора в QTableView  (Прочитано 3028 раз)
schmidt
Гость
« : Март 24, 2013, 09:12 »

Добрый день,

QTableView по умолчанию подразумевает операцию копирования при перетаскивании элементов. Но по логике своего приложения я реализую перемещение содержимого выделенных ячеек. Вызов setDefaultDropAction(Qt::MoveAction) на QTableView не оказывает никакого эффекта (проверял на тестовых пустом проекте с "читсым" QTableView пез переопределения каких-либо методов). Есть ли возможность изменить курсор копирования на собственный во время перетаскивания? Пробовал делать так:

Код:
//---------------------------------------------------------------------------------------
void MatrixView::dragEnterEvent(QDragEnterEvent *evt) {
    qDebug() << "dragEnterEvent() called";

    const QMimeData* mime_data = evt->mimeData();
    if(mime_data->hasFormat(TSV_MIME_TYPE)) {
        qDebug() << "action acceptred";
        evt->acceptProposedAction();
        QApplication::setOverrideCursor(QCursor(Qt::ClosedHandCursor));
    }

    QTableView::dragEnterEvent(evt);
}

На консоль успешно выводится
Цитировать
dragEnterEvent() called
action acceptred

Но курсор перегружаться не хочет Улыбающийся Может есть еще какие-то способы изменить drag-курсор?
Записан
dio
Гость
« Ответ #1 : Март 24, 2013, 16:40 »

DragAction надо задавать в модели, переопределением метода Qt::DropActions QAbstractItemModel::supportedDragActions () const или методом setSupportedDragActions ( Qt::DropActions actions ).
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Март 25, 2013, 10:45 »

Под Windows динамически менять drag-cursor не получится Грустный
Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.124 секунд. Запросов: 22.