C++ 跟踪光标C++;

C++ 跟踪光标C++;,c++,linux,ubuntu,graph,C++,Linux,Ubuntu,Graph,我目前正在开发一个类,该类在调用时将根据给定的参数创建一个x,y图,但我还希望在光标悬停在x,y图上时对该图中的每个点进行描述 例如,如果我生成一个显示市场增长(年份、数量、比率)的图表,并将鼠标悬停在某个点上,我希望出现一个小框,其中将显示该点的详细信息,如年份、股票、股价、图表中的位置等。我已经完成了图表生成器,但现在我需要这部分的帮助 如何在C++中实现这一点? 注意——我正在使用Ubuntu 另一个注意事项——我创建的图形没有图形库,也没有任何图形函数。如果你一开始不理解我的问题,我基本

我目前正在开发一个类,该类在调用时将根据给定的参数创建一个x,y图,但我还希望在光标悬停在x,y图上时对该图中的每个点进行描述

例如,如果我生成一个显示市场增长(年份、数量、比率)的图表,并将鼠标悬停在某个点上,我希望出现一个小框,其中将显示该点的详细信息,如年份、股票、股价、图表中的位置等。我已经完成了图表生成器,但现在我需要这部分的帮助

如何在C++中实现这一点?

注意——我正在使用Ubuntu

另一个注意事项——我创建的图形没有图形库,也没有任何图形函数。如果你一开始不理解我的问题,我基本上问了两件事:1。如何使用外部图形库实现对非图形图形的光标跟踪,以及2。如果不可能,我应该使用哪个库来创建图形,以及如何使用它们进行光标跟踪

抱歉给你带来困惑,这只是我第一次使用图形。我更像是一个“没有外部库”的程序员


谢谢。

您需要在图形中维护对象列表,然后对光标悬停的每个坐标进行“命中测试”。此命中测试基本上需要遍历列表,查看当前坐标是否落在该元素图形上的对象上。

我会选择Qt,因为有一个名为“基于Qt”的第三方库,它提供了很多技术小部件,包括绘图小部件(您可能还对QtCenter上的Qwt感兴趣)


“悬停时的txt框”效果的解决方案实际上非常简单,您只需通过设置节点小部件的工具提示即可。

如果您通过控制台创建图形,我不相信控制台会知道鼠标的位置。在像Java这样的语言中,你发现的许多图形功能在C++中是不存在的,因为C++的java开发者希望这些图形库是强大的,而不是便携式的。我支持这个建议,尽管我从未亲自使用过。这是我在别处看到的最受推荐的图书馆

了解您使用的图形库会很有帮助您使用的工具包是什么?gtkmm?Qt?普通Xlib(抖动)?完全是别的吗?我的图表不是图形。我忘了补充我的问题,这是一个双重问题。第一,我是否可以实现光标跟踪,而无需使用图形库生成图形,然后使用图形库进行跟踪,以及(2)如果不可能,哪个图形库适合创建图形,以及如何使用它跟踪光标。编辑了这个问题。谢谢。完全不使用外部库没有任何意义。除非您正在进行某种真正低级的嵌入式开发,否则您将设法在正常的X11显示器上打开一个窗口。你是怎么把窗户打开的?无论您使用什么,都可能具有获取鼠标事件的能力。它必须是一个有点图形化的图形,以便人们能够将鼠标光标悬停在其中的某个点上。显然,这就是我需要做的,这里不需要思考。我的问题是如何做到这一点。当你绘制你的对象时,它们将有一个特定的,已知的位置和一个特定的,非零的大小。您所需要做的就是将这些坐标与当前坐标关联起来。例如,如果对象是半径为5(14,24)的圆,则需要查看
sqrt((14-x)**2+(24-y)**2)
是否小于或等于5,如果小于或等于5,则显示信息。非常有用,谢谢。我肯定会选择这样的解决方案,而不是包含外部库。然而,我知道的唯一获得光标位置的方法只能在Windows(GetCursorPos)上工作,我正在Ubuntu上工作。关于如何在Linux上获取光标位置有什么想法吗?恐怕我在Linux中没有真正做过很多图形编程,但我会问我使用的是什么工具包。