Как сделать отступ от левого края и отступ от верха на 4 пикселя в graphicsView?
Написал вот такой код:
graphicsScene = new QGraphicsScene(this);
for (int i = 0; i < 256; i++) {
statebalanser = new StateBalanser(i);
statebalanser->setPos((i * 54) % 540, (i / 10) * 42);
graphicsScene->addItem(statebalanser);
}
// ui->graphicsView->setAlignment(Qt::AlignLeft); выравнял по левому краю работает ui->graphicsView->setScene(graphicsScene);
попробовал : statebalanser->setPos((i * 54) % 540 + 4, (i / 10) * 42) + 4; не получилось закомментировал
попробовал 'graphicsScene->setSceneRect(QRectF(4,4,544,1104));' не получилось закомментировал
попробовал 'ui->graphicsView->setSceneRect(QRectF(4,4,544,1104));' не получилось закомментировал
Но все равно получил прижатость к левому краю. Как сделать отступ в 4 пикселя ?
#ifndef STATEBALANSER_H
#define STATEBALANSER_H
#include <QGraphicsRectItem>
#include <QPainter>
#include <memorymap.h>
class StateBalanser : public QGraphicsRectItem
{
public:
StateBalanser(int num);
public:
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
void StateBalance();
void setColorState(unsigned char value_1, unsigned char value_2);
void setColorText(QColor text);
void setFontText(QFont fontText);
private:
int number;
private:
QRectF _intersect;
QColor _fillColorState;
QColor _fillColorModeWork;
QColor _fillColorText;
QFont _fontText;
public:
QRectF boundingRect() const;
QPainterPath shape() const;
};
#endif // STATEBALANSER_H
.cpp
#include "statebalanser.h"
StateBalanser::StateBalanser(int num) :
number(num)
{
setColorState(10,10); // 10 10
setAcceptHoverEvents(true);
StateBalanser::StateBalance();
StateBalanser::setColorText(Qt::black);
StateBalanser::setFontText(QFont("Monospace", 10));
setToolTip(QString("Sensor %1").arg(number + 1));
}
void StateBalanser::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->fillRect(boundingRect(), _fillColorModeWork);
painter->fillRect(_intersect, _fillColorState);
painter->drawPath(shape());
painter->setFont(_fontText);
painter->setPen(_fillColorText);
painter->drawText(boundingRect(), Qt::AlignCenter, QString("%1").arg(number + 1) );
}
void StateBalanser::StateBalance()
{
_intersect = boundingRect().intersected(QRectF(3, 3, 44, 32));
}
void StateBalanser::setColorState(unsigned char value_1, unsigned char value_2)
{
switch(value_2)
{
case StopBalancer : _fillColorModeWork = QColor("#000000") ;
break;
case ChargeBalancer : _fillColorModeWork = QColor("#0000ff") ;
break;
case DischargeBalancer : _fillColorModeWork = QColor("#ff0000") ;
break;
case EsrBalancer : _fillColorModeWork = QColor("#32CD32") ;
break;
case DisconnectBalancer : _fillColorModeWork = QColor("#000000") ;
break;
default : _fillColorModeWork = QColor("#ffffff") ;
break;
}
switch(value_1)
{
case StateGood : _fillColorState = QColor("#99FF99") ;
break;
case StateFiftyFifty: _fillColorState = QColor("#FFFF66") ;
break;
case StateFault : _fillColorState = QColor("#FF9999") ;
break;
case StateDisconnect: _fillColorState = QColor("#999999") ;
break;
default : _fillColorState = QColor("#ffffff") ;
break;
}
}
void StateBalanser::setColorText(QColor text)
{
_fillColorText = QColor(text);
}
void StateBalanser::setFontText(QFont fontText)
{
_fontText = fontText;
}
QRectF StateBalanser::boundingRect() const
{
return QRectF(0, 0, 49, 37);
}
QPainterPath StateBalanser::shape() const
{
QPainterPath path;
path.addRect(boundingRect());
return path;
}