如何在GUI插件中设置鼠标位置

时间:2014-11-13 16:01:41

标签: openframeworks

我正在开发一个界面,但我是openframeworks的新手,我需要一个类似于处理controlP5的cp5.getPointer().set(mouseX, mouseY);的库函数,以便设置相对于图形界面的鼠标位置。有没有人知道直接在openframes或具有相同功能的任何插件上执行此操作的方法?

我已经解决了一些关于鼠标位置设置的问题,比如这个:http://forum.openframeworks.cc/t/how-to-set-mouse-position/1438但它不是我想要的,因为我不想改变鼠标相对于openframeworks的位置,我只想修改与库相关的信息,这样我就可以控制它的按钮和gui元素了。

提前致谢。

1 个答案:

答案 0 :(得分:0)

由于没有提到特定的GUI插件(如ofxUI),我假设您正在使用名为ofxGui的标准GUI插件,该插件随预装的OpenFrameworks一起提供。

不幸的是,openFrameworks鼠标坐标对于GUI和绘图空间都是相同的。因此,当鼠标指针位于GUI元素的顶部时,没有修改鼠标坐标的功能,这是我认为您正在尝试做的事情。至少对我而言,似乎并非如此,可以轻松检测鼠标点是否在GUI元素内。当然,你可以做的是:

void ofApp:mouseMoved(int x, int y){
    ofRectangle shape = testGUI.getShape();

    if(shape.inside(x,y))
        //modify x,y to suit your needs, do other stuff, etc...
}

方法.getShape()从xBaseGui一直继承,因此它可以应用于任何ofxGui元素。

另外,请务必检查ofxUI。在我看来,它是一个用于openFrameworks的更强大的GUI库。

希望这会有所帮助。