Всем спасибо за ответы и помощь. В общем для теста сделал так:
Отнаследовался от QGraphicsProxyWidget:
.h файл
#include <QGraphicsProxyWidget>
class CustomWidget : public QGraphicsProxyWidget {
Q_OBJECT
public:
explicit CustomWidget(QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = 0);
~CustomWidget();
signals:
public slots:
};
.cpp файл
#include "customwidget.h"
#include <QLineEdit>
CustomWidget::CustomWidget(QGraphicsItem * parent, Qt::WindowFlags wFlags) : QGraphicsProxyWidget(parent, wFlags) {
QLineEdit * lineEditWidget = new QLineEdit();
this->setWidget(lineEditWidget);
this->setPos(10, 10);
}
CustomWidget::~CustomWidget() {
}
появились 2 проблемы:
1. Когда перемещаешь графический объект за границы view, а потом скроллом перемещаешь view на графичекий объект, то возникают глюки с отрисовкой. Перерисовывается только графический объект, а виджет нет. И такое ощущение, что перерисовка идет поверх старого объекта , ибо по обводке можно заметить, что ее толщина в некоторых местах разная. Причем с объектом, который был заспавнен на сцену первым, все нормально.
скриншот.
2. После действий связанных с ресайзом окон появляются также баги с отрисовкой.
скриншот.
Код добавления графического блока:
void MainWindow::on_addBlock_clicked() {
Block * item = new Block;
item->setPos(randomPos(30, 230), randomPos(30, 230));
item->setFlags(QGraphicsItem::ItemIsMovable);
scene->addItem(item);
CustomWidget * widget = new CustomWidget(item);
}
Подскажите пожалуйста, как исправить отрисовку? Может нужно еще какой-нибудь метод перегрузить у прокси виджета?