在C++中设置QGraphicsScene的鼠标追踪功能,没有setMouseTracking()方法
时间: 2024-03-03 17:51:26 浏览: 78
非常抱歉,我的回答有误。在C++中,QGraphicsScene没有setMouseTracking()方法,需要使用setMouseTracking()方法继承自QWidget的QGraphicsView类来实现该功能。以下是一个示例代码:
```cpp
#include <QGraphicsScene>
#include <QGraphicsView>
class MyView : public QGraphicsView
{
public:
MyView(QWidget *parent = nullptr) : QGraphicsView(parent)
{
setMouseTracking(true);
setScene(new QGraphicsScene);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyView view;
view.show();
return a.exec();
}
```
在这个示例中,我们创建了一个名为MyView的自定义QGraphicsView,并在其构造函数中启用了鼠标追踪功能。然后我们将其场景设置为QGraphicsScene的实例。最后,在主函数中创建了MyView实例并显示它。
相关问题
QGraphicsScene设置鼠标追踪 C++
要在C++中设置QGraphicsScene的鼠标追踪功能,可以使用setMouseTracking()方法。以下是一个示例代码:
```cpp
#include <QGraphicsScene>
#include <QGraphicsView>
class MyScene : public QGraphicsScene
{
public:
MyScene(QObject *parent = nullptr) : QGraphicsScene(parent)
{
setMouseTracking(true);
}
};
class MyView : public QGraphicsView
{
public:
MyView(QWidget *parent = nullptr) : QGraphicsView(parent)
{
setScene(new MyScene);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyView view;
view.show();
return a.exec();
}
```
在这个示例中,我们创建了一个名为MyScene的自定义QGraphicsScene,并在其构造函数中启用了鼠标追踪功能。然后我们创建了一个名为MyView的自定义QGraphicsView,并将其场景设置为MyScene。最后,在主函数中创建了MyView实例并显示它。
QGraphicsScene设置鼠标追踪
要在QGraphicsScene中设置鼠标追踪,可以使用setMouseTracking()方法。将其设置为True即可启用鼠标追踪功能。以下是一个示例代码:
```
from PyQt5.QtWidgets import QGraphicsScene, QGraphicsView
class MyScene(QGraphicsScene):
def __init__(self, parent=None):
super(MyScene, self).__init__(parent)
self.setMouseTracking(True)
class MyView(QGraphicsView):
def __init__(self, parent=None):
super(MyView, self).__init__(parent)
self.setScene(MyScene())
view = MyView()
view.show()
```
在这个示例中,我们创建了一个名为MyScene的自定义QGraphicsScene,并在其构造函数中启用了鼠标追踪功能。然后我们创建了一个名为MyView的自定义QGraphicsView,并将其场景设置为MyScene。最后,我们在主函数中创建了MyView实例并显示它。
阅读全文