2

問題は、スクロールエリアが機能しないことですQDeclarativeViewQScrollArea宣言型ビューをどれだけ大きく設定してもかまいません。ビューにスクロールバーが必要であることがわかりません。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 が検出されないようです。

4

1 に答える 1