2012-07-10 70 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是一个很好的满足您的需求。