Обновление курсора мыши в Qt на основе того, что находится под нимC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Обновление курсора мыши в Qt на основе того, что находится под ним

Сообщение Anonymous »

В настоящее время я переопределяю mouseMoveEvent, чтобы обновлять курсор мыши в зависимости от того, что находится под ним.
Это работает довольно хорошо, но я заметил один сценарий, когда это не удается. Прокрутка.
Если в виджете есть полосы прокрутки, вы можете оставить курсор на месте и использовать колесо прокрутки, которое не будет обновлять курсор, даже если элементы под ним изменяются. Существует WheelEvent, но, похоже, он вызывается только в начале операции прокрутки.

Код: Выделить всё

void TreeView::mouseMoveEvent(QMouseEvent* event)
{
QModelIndex index = indexAt(event->pos());

if (index.isValid() && isItemClickable(index))
setCursor(Qt::PointingHandCursor);
else
setCursor(Qt::ArrowCursor);

QTreeView::mouseMoveEvent(event);
}
Поэтому мой вопрос в основном таков: есть ли какое-то идеальное событие/решение для этой проблемы, кроме простого создания очень короткого таймера с помощью mapFromGlobal(QCursor::pos()); для проверки позиции в любое время?


Подробнее здесь: https://stackoverflow.com/questions/797 ... underneath
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»