由於我的例子中有多處需要用到點選操作,我不想對一段**到處複製貼上,所以我寫了一基類對點選操作進行管理。
其功能有:
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 在建立基類時,若涉及到事件,事件是特殊型別的委託,只可以從宣告它們的類中呼叫,派生類無法直接呼叫基類中宣告的事件,但是在多數情況,會需要允許派生類呼叫基類事件,這時,可以再包含該事件的基類中建立乙個受保護的虛呼叫方法,通過呼叫或重寫此呼叫方法,派生類便可以間接呼叫該事件。注 不要在基類中宣告虛擬...