Как установить курсор, когда он находится в какой-то области?

У меня есть прямоугольная область ссылок на моем виджете. Как лучше всего сделать курсор Qt::PointingHandCursor, когда он находится в этой области?
введите здесь описание изображения


person Ufx    schedule 23.12.2015    source источник
comment
Как вы справляетесь с взаимодействием в области ссылок, если она не является дочерним виджетом?   -  person RobbieE    schedule 24.12.2015
comment
Я рисую текст и обрабатываю сигнал клика. Моя проблема в том, что у виджета нет сигнала, поэтому, когда я перемещаю курсор вверх, он остается переопределяющим курсор. На самом деле я хочу сделать ссылку в правой части строки меню. stackoverflow.com/questions/34433958 /   -  person Ufx    schedule 24.12.2015
comment
может быть вы знаете, как я могу добавить виджет для решения моей проблемы?   -  person Ufx    schedule 24.12.2015


Ответы (1)


Класс QWidget имеет свойство cursor, которое вы можете установить с курсором, который вы хотите отображать, когда мышь находится над ним.

РЕДАКТИРОВАТЬ: Без подробностей о том, чего вы пытаетесь достичь, я могу только предположить, что вы делаете свою жизнь намного сложнее, чем нужно. Вы можете создать виджет QLabel для обработки ссылки, а затем автоматически поместить метку в строку меню.

QLabel *link = new QLabel("<a href='http://doc.qt.io'>Qt Documentation</a>");
menuBar()->setCornerWidget(link);

Все форматирование текста, отображение курсора и взаимодействие с пользователем обрабатываются существующим кодом в классах Qt. Единственное, что вам нужно сделать самостоятельно, это обработать то, что происходит, когда пользователь нажимает на ссылку, что вы можете сделать, подключив слот к сигналу QLabel::linkActivated(const QString &).

person RobbieE    schedule 23.12.2015