Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在QML中设置鼠标光标位置_C++_Qt_Qml_Qtquick2 - Fatal编程技术网

C++ 如何在QML中设置鼠标光标位置

C++ 如何在QML中设置鼠标光标位置,c++,qt,qml,qtquick2,C++,Qt,Qml,Qtquick2,我正在使用QQuickFrameBufferObject在QML应用程序中渲染3D对象。在应用程序中,当我旋转或平移显示的对象时,我希望鼠标光标在QQuickFrameBufferObject曲面上扭曲 旋转和平移非常有效,但我找不到控制鼠标位置的方法 为了更好地解释我所说的扭曲:我所说的扭曲鼠标光标是指在屏幕上旋转3D对象时,单击并拖动鼠标。但是,当您到达屏幕右侧的末端时,您不能再向右拖动,您必须释放鼠标按钮,向左移动鼠标,再次单击并拖动以继续旋转 我要做的是在拖动鼠标时将鼠标光标传送(或扭曲

我正在使用
QQuickFrameBufferObject
在QML应用程序中渲染3D对象。在应用程序中,当我旋转或平移显示的对象时,我希望鼠标光标在
QQuickFrameBufferObject
曲面上扭曲

旋转和平移非常有效,但我找不到控制鼠标位置的方法

为了更好地解释我所说的扭曲:我所说的扭曲鼠标光标是指在屏幕上旋转3D对象时,单击并拖动鼠标。但是,当您到达屏幕右侧的末端时,您不能再向右拖动,您必须释放鼠标按钮,向左移动鼠标,再次单击并拖动以继续旋转

我要做的是在拖动鼠标时将鼠标光标传送(或扭曲)到渲染曲面的左侧,并到达渲染曲面的右侧,从而在旋转时允许无限移动


有没有办法让我达到这个效果(可以简单地通过在鼠标到达边界时从JS脚本或C++后端设置位置,或者通过抓取鼠标的方式来获取相对位置,就像在一些窗口库中可以完成的那样)。

< P>我不完全理解你的需要,但是也许这门课对你有帮助

您可以将其集成,例如:

#include <QObject>
#include <QCursor>

class MyObj : public QObject
{
    Q_OBJECT
public:
    explicit MyObj(QObject *parent = 0) : QObject(parent)
    {

    }

signals:

public slots:
    void moveCursor() { cursor.setPos(0, 0); } // Sets it to the top left corner of the screen

private:
    QCursor cursor;
};

因此,从我的理解来看,缺少的是,如何计算鼠标移动到的位置(它们不是windows坐标,所以
mapToGlobal
),以及如何触发鼠标,但我想您最清楚。

我并不完全理解您的需要,但是-class可能会帮助您

您可以将其集成,例如:

#include <QObject>
#include <QCursor>

class MyObj : public QObject
{
    Q_OBJECT
public:
    explicit MyObj(QObject *parent = 0) : QObject(parent)
    {

    }

signals:

public slots:
    void moveCursor() { cursor.setPos(0, 0); } // Sets it to the top left corner of the screen

private:
    QCursor cursor;
};

因此,从我的理解来看,缺少的是,如何计算您想要移动鼠标的位置(它们不是windows坐标,所以
mapToGlobal
),以及如何触发它,但我猜您最清楚。

不知道您可以只集成QCursor,它会毫无困难地连接到光标,成功了。我编辑了我的问题,以便更好地解释我扭曲光标的意思
setPos
QCursor
@ferri的静态成员,你是对的。所以没有
私有QCursor游标需要。不知道你可以集成QCursor,它可以毫无困难地连接到游标,它成功了。我编辑了我的问题,以便更好地解释我扭曲光标的意思
setPos
QCursor
@ferri的静态成员,你是对的。所以没有
私有QCursor游标需要。