Hello, All !
I develop class
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
class XGisCanvasView : public QtCanvasView
{
private:
Q_OBJECT
public:
XGisCanvasView (QWidget *parent=NULL);
virtual ~XGisCanvasView (void);
QPoint getPos (void) const { return scr; }
signals:
void contentsMouseMove (QMouseEvent *e);
void mousePress (QMouseEvent *e);
void mouseRelease (QMouseEvent *e);
void mouseDoubleClick (QMouseEvent *e);
void mouseContextMenu (QContextMenuEvent *e);
void resize (QResizeEvent *e);
protected:
virtual void contentsMouseMoveEvent (QMouseEvent *e);
virtual void contentsMousePressEvent (QMouseEvent *e);
virtual void contentsMouseReleaseEvent (QMouseEvent *e);
virtual void contentsMouseDoubleClickEvent (QMouseEvent *e);
virtual void contentsContextMenuEvent (QContextMenuEvent *e);
virtual void resizeEvent (QResizeEvent *e);
private:
QPoint scr;
QtCanvas* pCanvas;
};
|
In constructor of this class I make setcanvas for this QtCanvasView subclass
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
XGisCanvasView :: XGisCanvasView(QWidget *parent/*=NULL*/) : QtCanvasView (parent), scr (QPoint(0, 0))
{
setMouseTracking ( true );
viewport()->setMouseTracking ( true );
int x = width();
int y = height();
if ( parent )
{
x = parent->width();
y = parent->height();
}
qDebug ("width = %d height = %d", x, y);
pCanvas = new QtCanvas ( this );
qDebug ("QtCanvas init");
pCanvas->resize (x, y);
//QtCanvasView (&wcanv, parent);
setCanvas( pCanvas );
qDebug ("QtCanvas set");
this->canvas()->update();
bool isTrace = hasMouseTracking();
bool isVTrace = viewport()->hasMouseTracking();
if ( isTrace )
qDebug ("Mouse tracking is on");
else
qDebug ("Mouse tracking is off");
if ( isVTrace )
qDebug ("Viewport Mouse tracking is on");
else
qDebug ("Viewport Mouse tracking is off");
}
|
After setCanvas variables isTrace and isVTrace are true, but mouse movement does not trace, I have to press mouse button. If I comment setCanvas function, all mouse movements are traced normally. Where is problem ?