問題は、スクロールエリアが機能しないことですQDeclarativeView
。QScrollArea
宣言型ビューをどれだけ大きく設定してもかまいません。ビューにスクロールバーが必要であることがわかりません。setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); を設定しない場合 スクロールバーが表示されません。
親は中央ウィジェットとしてボーダーレイアウトに挿入されます - 私はこのレイアウトを使用しますhttp://qt-project.org/doc/qt-4.8/layouts-borderlayout.html
myWidgets *editWidget = new myWidgets(pathToExe,viewerMgr, this);
editWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
これがmyWidgetです:
QScrollArea* scroll = new QScrollArea();
view = new QDeclarativeView(this);
view->setSource(QUrl::fromLocalFile(path));
view->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
view->setResizeMode(QDeclarativeView::SizeViewToRootObject);
scroll->setWidget(view);
scroll->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scroll->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scroll->setWidgetResizable(true);
コンテンツで別のサイズを試してみましたが、ウィジェットが qscrollarea の表示ビューよりも大きい場合、qscrollview が検出されないようです。