Event filtering is a general Qt feature ( see QObject::installEventFilter() ).
Assuming your plot widget owns your scroll bar, then you have to do something like this:
{
public:
YourPlot( ... )
{
....
m_scrollBar = new QScrollBar( Qt
::Horizontal,
this );
canvas()->installEventFilter(this);
}
{
if ( object == canvas() )
{
if ( e
->type
() == QEvent::Move ) {
m_scrollBar->move( ... );
}
if ( e
->type
() == QEvent::Resize ) {
m_scrollBar->resize( ... );
}
}
return QwtPlot::eventFilter( object, event
);
}
};
class YourPlot: public QwtPlot
{
public:
YourPlot( ... )
{
....
m_scrollBar = new QScrollBar( Qt::Horizontal, this );
canvas()->installEventFilter(this);
}
virtual bool eventFilter(QObject *object, QEvent *e)
{
if ( object == canvas() )
{
if ( e->type() == QEvent::Move )
{
m_scrollBar->move( ... );
}
if ( e->type() == QEvent::Resize )
{
m_scrollBar->resize( ... );
}
}
return QwtPlot::eventFilter( object, event );
}
};
To copy to clipboard, switch view to plain text mode
But of course you can put your scrollbar also everywhere else independant of the plot canvas geometry.
Uwe
Bookmarks