Отслеживание курсора C ++ - PullRequest
3 голосов
/ 27 ноября 2010

В настоящее время я работаю над классом, который будет создавать график x, y в соответствии с заданными параметрами при вызове, но я также хочу описание каждой точки на графике x, y, когда курсор находится над ним.

Например, если я создаю график, показывающий рост рынка (год, количество, ставка), и нахожусь над определенной точкой, я хочу, чтобы появилось маленькое поле, и в нем будут подробности об этой точке, например, год, акции, цены на акции, положение на графике и т. д. Я уже закончил генератор графиков, но теперь мне нужна помощь с этой частью.

Как мне добиться этого в C ++?

Примечание -- Я использую Ubuntu.

Еще одно замечание - я создал свой график без графических библиотек и без каких-либо графических функций.Если вы сначала не поняли мой вопрос, я в основном спрашиваю 2 вещи: 1. Как реализовать отслеживание курсора на моем неграфическом графике с помощью внешних графических библиотек и 2. если это невозможно, какую библиотеку следует использоватьсоздать график и как я могу использовать их для отслеживания курсора?

Извините за путаницу, это только первый раз, когда я использую графику.Я больше программист "без внешних библиотек".

Спасибо.

Ответы [ 3 ]

2 голосов
/ 27 ноября 2010

Я бы выбрал Qt, поскольку есть сторонняя библиотека с именем Qwt , основанная на Qt, которая предоставляет довольно много технических виджетов, в том числе графических (вы также можете быть заинтересованы в выделенных суб-объектах Qwt ).forum на qtcentre).

Решение для эффекта "txt-box on hover" на самом деле очень простое, вам просто нужно установить всплывающую подсказку с помощью QWidget :: setToolTip (const QString &) для узловых виджетов.

1 голос
/ 27 ноября 2010

Вам необходимо вести список объектов на графике, а затем выполнить «тест попадания» для каждой координаты, на которую наведен курсор.Этот тест попадания в основном влечет за собой итерацию по вашему списку, чтобы увидеть, попадают ли текущие координаты на объект на графике для этого элемента.

0 голосов
/ 28 ноября 2010

Если вы создаете график через консоль, я не верю, что в любом случае эта консоль будет знать, где находится ваша мышь. Многие графические функции, которые вы найдете в языке, подобном Java, просто не существуют в C ++, поскольку создатели C ++ хотели, чтобы эти графические библиотеки были мощными, а не переносимыми. Я рекомендую QT , хотя я никогда не использовал его лично. Это библиотека, которую я видел наиболее рекомендуемой в другом месте.

...