0backbone0
26th August 2015, 14:37
Hi,
I am trying to create a custom GraphicsItem that will set its width autocratically to the Scene width.
sceneBoundingRect() sounds like what I need, but my Program crashes all the time.
#include "customparentitem.h"
#include <QDebug>
customparentitem::customparentitem()
{
setFlag(ItemIsMovable);
}
QRectF customparentitem::boundingRect() const
{
qDebug() << this->sceneBoundingRect();
return QRectF(0,0,200,30);
}
void customparentitem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
QRectF temprec=boundingRect();
painter->drawRoundedRect(temprec.x(),temprec.y(),temprec.wi dth(),temprec.height(),8,8);
}
The returned BoundingRect is just temporary until I get the desired output with qDebug().
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
scene(new QGraphicsScene),
customitem(new customparentitem)
{
ui->setupUi(this);
ui->graphicsView->setViewportUpdateMode(QGraphicsView::FullViewportU pdate);
ui->graphicsView->setRenderHint(QPainter::Antialiasing);
scene->setSceneRect(ui->graphicsView->rect());
scene->addItem(customitem);
ui->graphicsView->setScene(scene);
}
MainWindow::~MainWindow()
{
delete ui;
}
This compiles just fine, but as said earlier crashes. Any ideas why?
I am trying to create a custom GraphicsItem that will set its width autocratically to the Scene width.
sceneBoundingRect() sounds like what I need, but my Program crashes all the time.
#include "customparentitem.h"
#include <QDebug>
customparentitem::customparentitem()
{
setFlag(ItemIsMovable);
}
QRectF customparentitem::boundingRect() const
{
qDebug() << this->sceneBoundingRect();
return QRectF(0,0,200,30);
}
void customparentitem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
QRectF temprec=boundingRect();
painter->drawRoundedRect(temprec.x(),temprec.y(),temprec.wi dth(),temprec.height(),8,8);
}
The returned BoundingRect is just temporary until I get the desired output with qDebug().
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
scene(new QGraphicsScene),
customitem(new customparentitem)
{
ui->setupUi(this);
ui->graphicsView->setViewportUpdateMode(QGraphicsView::FullViewportU pdate);
ui->graphicsView->setRenderHint(QPainter::Antialiasing);
scene->setSceneRect(ui->graphicsView->rect());
scene->addItem(customitem);
ui->graphicsView->setScene(scene);
}
MainWindow::~MainWindow()
{
delete ui;
}
This compiles just fine, but as said earlier crashes. Any ideas why?