2012-07-10 49 views
0

我需要使用QtWebKit的使用CSS 3D支持,這就是爲什麼我用QGraphicsWebView和QGLWidget來繪圖,代碼如下所示:QT最大化QGraphicsWebView在QMainWindow的

MainWindow.hpp:

#include <QMainWindow> 
#include <QGraphicsScene> 
#include <QGraphicsView> 
#include <QGraphicsWebView> 

class MainWindow : public QMainWindow { 
    Q_OBJECT; 
    public: 
     MainWindow(const char *url); 
     void init(); 
    private: 
     QGraphicsView *gview; 
     QGraphicsScene *scene; 
     QGraphicsWebView *web_view; 
}; 

MainWindow.cpp:

#include "MainWindow.hpp" 
#include <QWebSettings> 
#include <QGLWidget> 
#include <QStatusBar> 

MainWindow::MainWindow(const char *url) { 
    setWindowTitle("QTWebKit Experiment"); 

    QWebSettings::globalSettings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled, true); 
    gview = new QGraphicsView(this); 
    gview->setViewportUpdateMode(QGraphicsView::FullViewportUpdate); 
    gview->setViewport(new QGLWidget(this)); 

    scene = new QGraphicsScene(gview); 
    web_view = new QGraphicsWebView(); 

    scene->addItem(web_view); 
    gview->setScene(scene); 
    web_view->load(QString(url)); 
    web_view->setResizesToContents(true); 

    setCentralWidget(gview); 
} 

void MainWindow::init() { 
    show(); 
} 

的問題是web_view不填充QMainWindow小部件。我應該怎麼做才能讓網站填滿這個窗口?

- >Screenshot - google in resized QMainWindow

+0

你以某種方式解決了嗎?如果是的話,當窗口變大而又變小時,你是否得到了滾動條,即由於某種原因內容大小不變? – AndiDog 2013-02-19 10:44:35

回答

0

你有沒有嘗試添加QGraphicsWebView到QGraphicsScene之前設置大小的政策?

web_view->setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding); 

您還應該添加小部件到一個佈局(該物業sizePolicy是一個佈局的行爲,所以你需要把你的小部件到佈局)QVboxLayout是一個很好的滿足您的需求。