У меня есть прямоугольная область ссылок на моем виджете. Как лучше всего сделать курсор Qt::PointingHandCursor
, когда он находится в этой области?
Как установить курсор, когда он находится в какой-то области?
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