PDA

View Full Version : QWebView,QWidget,createWindowContainer,QWindow



PstdEr
9th October 2013, 07:44
Hi,

I am trying to add a WebView to QWidget got from createWindowContainer which in turn used QWindow.

But it does not show the page.It displays only window with text "QWindow" in it.




QWidget * display = new QWidget;
QWidget * window ;

void MainWindow::launch_app(int id)
{
WId winid = (WId) id;
qDebug()<<"In launch_app win id is "<< id;
QVBoxLayout *vl = new QVBoxLayout;
display->setLayout(vl);
window = createWindowContainer(QWindow::fromWinId(winid),di splay,\
Qt::WindowMinMaxButtonsHint|Qt::WindowCloseButtonH int
|Qt::WindowCancelButtonHint
|Qt::FramelessWindowHint);


QUrl qurl("http://google.com");
QHBoxLayout *layout2 = new QHBoxLayout;
QWebView *m_WebView = new QWebView;
window->setLayout(layout2);
layout2->addWidget(m_WebView);
m_WebView->setFocusPolicy(Qt::StrongFocus);

m_WebView->load(qurl);
m_WebView->show();
vl -> addWidget(window);
qDebug()<<"addWidget";
}

the winid is got from below window having below structure



class RasterWindow : public QWindow
{
Q_OBJECT
public:
explicit RasterWindow(QWindow *parent = 0);

virtual void render(QPainter *painter);

public slots:
void renderLater();
void renderNow();

protected:
bool event(QEvent *event);

void resizeEvent(QResizeEvent *event);
void exposeEvent(QExposeEvent *event);

private:
QBackingStore *m_backingStore;
bool m_update_pending;
};

void RasterWindow::render(QPainter *painter)
{
painter->drawText(QRectF(0, 0, width(), height()), Qt::AlignCenter, QStringLiteral("QWindow"));
}