#include #include #include #include #include #include #include #include int main( int argc, char** argv) { QApplication app(argc, argv); QGraphicsScene scene(0.0, 0.0, 600.0, 600.0); QGraphicsView view(&scene); QWidget scrolled_widget; QVBoxLayout layout; scrolled_widget.setLayout( &layout ); for( int i = 0; i < 30; i++) { QString str; str = QString("%1").arg(i); QLabel* label = new QLabel(str); layout.addWidget(label); } QScrollArea scroll_area; scroll_area.setWidget( &scrolled_widget ); QWidget main_widget; QVBoxLayout main_layout; main_widget.setLayout( &main_layout ); main_layout.addWidget( &scroll_area ); QGraphicsProxyWidget proxy; proxy.setCacheMode(QGraphicsItem::DeviceCoordinateCache); //proxy.setCacheMode(QGraphicsItem::NoCache); proxy.setWindowFlags(proxy.windowFlags() | Qt::Window); proxy.setWidget( &main_widget ); scene.addItem( &proxy ); view.show(); app.exec(); }