#include #include "VFrame.h" VFrame::VFrame(QWidget * parent): QWidget(parent), fMouseMovable(false) { setCursor(Qt::SizeAllCursor); //setBackgroundRole(QPalette::Base); //setAttribute(Qt::WA_NoSystemBackground); //setAttribute(Qt::WA_ContentsPropagated); //setAttribute(Qt::WA_OpaquePaintEvent); //setMaskRegion(); } //VFrame::~VFrame() //{ //} void VFrame::paintEvent(QPaintEvent * event) { QPainter painter(this); //painter.setBrush(Qt::NoBrush); QPen pen = QPen(Qt::lightGray); pen.setWidth(4); painter.setPen(pen); painter.drawRect(this->contentsRect()); } void VFrame::setMaskRegion() { QRect rect = this->contentsRect(); QRegion reg1(rect); rect.adjust(2, 2, -2, -2); QRegion reg2(rect); reg1 -= reg2; this->setMask(reg1); } void VFrame::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { fMousePos = event->pos(); fParentMousePos = mapToParent(fMousePos); fMouseMovable = true; } } void VFrame::mouseMoveEvent(QMouseEvent *event) { if (fMouseMovable){ QPoint parentPos = mapToParent(event->pos()); QPoint d = fParentMousePos - parentPos; //scroll(d.x(), d.y()); setGeometry(fParentMousePos.x() - d.x() - fMousePos.x(), fParentMousePos.y() - d.y() - fMousePos.y(), width(), height()); emit changed(geometry()); } } void VFrame::mouseReleaseEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { fMouseMovable = false; } }