Ich muss eine QWebView in eine QGraphicsScene einbetten ,das ist soweit kein Problem.
Jedoch soll die WebView einen Rahmen haben und deshalb habe eine vererbte Klasse des QGraphicsProxyWidget erstellt ,nun stellt sich mir ein Problem entgegen ,wieso ist das Rechteck was ich mit dem QPainter zeichne kein Rechteck ? (Bild angefügt)
Hier mein Code:
extendedproxy.h
Code: Alles auswählen
#ifndef EXTENDEDPROXY_H
#define EXTENDEDPROXY_H
#include <QPainter>
#include <QGraphicsProxyWidget>
#include <QtDebug>
class ExtendedProxy : public QGraphicsProxyWidget
{
public:
ExtendedProxy();
private:
void paint(QPainter* painter,const QStyleOptionGraphicsItem *option,QWidget* widget);
};
#endif // EXTENDEDPROXY_H
extendedproxy.cpp
Code: Alles auswählen
#include "extendedproxy.h"
ExtendedProxy::ExtendedProxy()
{
}
void ExtendedProxy::paint(QPainter *painter,const QStyleOptionGraphicsItem *option,QWidget *widget){
//qDebug()<<"Paint ";
QGraphicsProxyWidget::paint(painter,option,widget);
QPen pen(Qt::blue);
pen.setWidth(50);
painter->setPen(pen);
painter->drawRect(-50,-50,this->geometry().width()+100,this->geometry().height()+100);
}
main.cpp
Code: Alles auswählen
#include <QtGui/QApplication>
#include <QtWebKit>
#include <QWebSettings>
#include <QGraphicsView>
#include <QGraphicsScene>
#include "extendedproxy.h"
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsScene gscene;
QGraphicsView gview(&gscene);
gview.setGeometry(100,100,800,800);
gview.show();
ExtendedProxy* proxy = new ExtendedProxy();
QWebView *view = new QWebView();
view->setGeometry(100,100,600,600);
view->load(QUrl("http://www.google.de"));
view->settings()->setAttribute(QWebSettings::PluginsEnabled,true);
proxy->setWidget(view);
gscene.addItem(proxy);
return a.exec();
}
Ich hoffe das mein Problem deutlich geworden ist ,woher stammt dieses Problem und was kann man dagegen tun ?