近期在学习OSGEarth,看example,自己结合Qt写了一些小例子,特此记录一下。
首先,考虑到OE(OSGEarth)嵌入到QGraphicsView中,首先收到按键、鼠标事件的就是QGraphicsView,因此,我们需要先把这一庞大的事件进行处理。
代码如下:eventadapter .h
class EventAdapter : public QGraphicsView
{
public:
EventAdapter();
~EventAdapter();
protected:
// 处理按键事件
virtual void keyPressEvent(QKeyEvent* event);
virtual void keyReleaseEvent(QKeyEvent* event);
// 处理鼠标单击事件
virtual void mousePressEvent(QMouseEvent* event);
virtual void mouseReleaseEvent(QMouseEvent* event);
// 处理鼠标双击事件
virtual void mouseDoubleClickEvent(QMouseEvent* event);
virtual void mouseMoveEvent(QMouseEvent* event);
// 处理鼠标中轮滑动事件
virtual void wheelEvent(QWheelEvent* event);
// 处理窗口大小改变事件
virtual void resizeEvent(QResizeEvent *event);
// 处理鼠标移动事件
virtual void moveEvent(QMoveEvent* event);
// timerEvent事件
virtual void timerEvent(QTimerEvent *event);
private:
void setKeyboardModifiers(QInputEvent* event);

这篇博客记录了作者在学习OSGEarth过程中,如何将OE嵌入到Qt的QGraphicsView框架中,重点讨论了如何处理QGraphicsView的事件,并提到了如果要实现触屏操作需要做的额外工作。
最低0.47元/天 解锁文章
3211

被折叠的 条评论
为什么被折叠?



