#include "scrollarea.h"
#include <QGraphicsView>
#include <QWidget>
#include <QPushButton>
#include <QScrollBar>
#define DEFAULT_MARGIN 30
scroller
::scroller(QWidget* parent
/* =null */){
mLeftWidget = NULL;
mTopWidget = NULL;
scene
()->setSceneRect
(QRectF(0,
0, 3000.0f, 3000.0f
));
//just for scrolling purposes
connect(hbar, SIGNAL(valueChanged(int)), this, SLOT(adjustMarginWidgets()));
connect(vbar, SIGNAL(valueChanged(int)), this, SLOT(adjustMarginWidgets()));
setViewportMargins(DEFAULT_MARGIN, DEFAULT_MARGIN, 0, 0 );
createMarginWidgets();
}
scroller::~scroller()
{
}
void scroller::createMarginWidgets()
{
adjustMarginWidgets();
}
void scroller::adjustMarginWidgets()
{
QRect viewportRect
= viewport
()->geometry
();
QRect lrect
= QRect(viewportRect.
topLeft(), viewportRect.
bottomLeft());
lrect.adjust(-DEFAULT_MARGIN, 0, 0, 0);
mLeftWidget->setGeometry(lrect);
QRect trect
= QRect(viewportRect.
topLeft(), viewportRect.
topRight());
trect.adjust(0, -DEFAULT_MARGIN, 0, 0);
mTopWidget->setGeometry(trect);
}
void scroller::createCornerWidget()
{
}
{
adjustMarginWidgets();
}
#include "scrollarea.h"
#include <QGraphicsView>
#include <QWidget>
#include <QPushButton>
#include <QScrollBar>
#define DEFAULT_MARGIN 30
scroller::scroller(QWidget* parent/* =null */)
:QGraphicsView(parent)
{
mLeftWidget = NULL;
mTopWidget = NULL;
setScene(new QGraphicsScene(this));
scene()->setSceneRect(QRectF(0, 0, 3000.0f, 3000.0f)); //just for scrolling purposes
QScrollBar* hbar = verticalScrollBar();
QScrollBar* vbar = horizontalScrollBar();
connect(hbar, SIGNAL(valueChanged(int)), this, SLOT(adjustMarginWidgets()));
connect(vbar, SIGNAL(valueChanged(int)), this, SLOT(adjustMarginWidgets()));
setViewportMargins(DEFAULT_MARGIN, DEFAULT_MARGIN, 0, 0 );
createMarginWidgets();
}
scroller::~scroller()
{
}
void scroller::createMarginWidgets()
{
mLeftWidget = new QPushButton("L", this);
mTopWidget = new QPushButton("T", this);
adjustMarginWidgets();
}
void scroller::adjustMarginWidgets()
{
QRect viewportRect = viewport()->geometry();
QRect lrect = QRect(viewportRect.topLeft(), viewportRect.bottomLeft());
lrect.adjust(-DEFAULT_MARGIN, 0, 0, 0);
mLeftWidget->setGeometry(lrect);
QRect trect = QRect(viewportRect.topLeft(), viewportRect.topRight());
trect.adjust(0, -DEFAULT_MARGIN, 0, 0);
mTopWidget->setGeometry(trect);
}
void scroller::createCornerWidget()
{
}
void scroller::resizeEvent(QResizeEvent *e)
{
QGraphicsView::resizeEvent(e);
adjustMarginWidgets();
}
To copy to clipboard, switch view to plain text mode
#pragma once
#include <QGraphicsView>
{
Q_OBJECT
public:
~scroller();
protected:
private slots:
void adjustMarginWidgets();
private:
void createMarginWidgets();
void createCornerWidget();
};
#pragma once
#include <QGraphicsView>
class QWidget;
class QPushButton;
class scroller : public QGraphicsView
{
Q_OBJECT
public:
scroller(QWidget* = NULL);
~scroller();
protected:
virtual void resizeEvent(QResizeEvent *);
private slots:
void adjustMarginWidgets();
private:
void createMarginWidgets();
void createCornerWidget();
QPushButton *mLeftWidget;
QPushButton *mTopWidget;
};
To copy to clipboard, switch view to plain text mode
Bookmarks