OSG點選事件的基類

2021-07-03 17:26:10 字數 896 閱讀 9147

由於我的例子中有多處需要用到點選操作,我不想對一段**到處複製貼上,所以我寫了一基類對點選操作進行管理。

其功能有:

1. 管理點選事件的新增和刪除操作

2. 管理點選成功後qt訊號的傳送

話不多數,上**。

handleadapter.h

class handleadapter : public qobject

virtual

void slotmoveing(osg::vec3d pos){}

virtual

void slotpickedxyz(osg::vec3d pos){}

virtual

void slotmoveingxyz(osg::vec3d pos){}

virtual

void slotrighthandle(){}

public:

graphicsview* m_pmap3d;

osg::group* m_playergroup;

pickhandle* m_peventhandle;

};

功能實現如handleadapter.cpp

handleadapter::handleadapter(graphicsview* view, qobject* parent/* = null*/)

: m_pmap3d(view), qobject(parent)

handleadapter::~handleadapter()

void

handleadapter::benginhandle()

void

handleadapter::endhandle()

技巧篇 如何重寫基類的事件

先說說需求,也就是我們要達到的效果,希望擴充套件按鈕控制項,增加一些屬性,但同時我們希望預設事件仍使用click事件,不過,在事件引數中,我們希望能夠傳遞更多的資訊,而不是button.click預設的引數。當然,我們首先要寫乙個自定義的事件引數,為了簡單起見,我們的自定義按鈕控制項,增加乙個tag...

技巧篇 如何重寫基類的事件

先說說需求,也就是我們要達到的效果,希望擴充套件按鈕控制項,增加一些屬性,但同時我們希望預設事件仍使用click事件,不過,在事件引數中,我們希望能夠傳遞更多的資訊,而不是button.click預設的引數。當然,我們首先要寫乙個自定義的事件引數,為了簡單起見,我們的自定義按鈕控制項,增加乙個tag...

在派生類中引發基類事件

1 在建立基類時,若涉及到事件,事件是特殊型別的委託,只可以從宣告它們的類中呼叫,派生類無法直接呼叫基類中宣告的事件,但是在多數情況,會需要允許派生類呼叫基類事件,這時,可以再包含該事件的基類中建立乙個受保護的虛呼叫方法,通過呼叫或重寫此呼叫方法,派生類便可以間接呼叫該事件。注 不要在基類中宣告虛擬...