1

こんにちは、ScrollView のビューポートを調整して、画面の中央に表示されるようにする必要があります。考えられるすべてのプロパティを試しました。

    Page *page = new Page();
Container *container = new Container();
AbsoluteLayout *absoluteLayout = new AbsoluteLayout();
container->setLayout(absoluteLayout);
for(int y=0;y<1536;y+=256)
{
    for(int x=0;x<1536;x+=256)
    {
        AbsoluteLayoutProperties *imageProperties = AbsoluteLayoutProperties::create().x(x).y(y);
        ImageView *imageView = ImageView::create().layoutProperties(imageProperties);
        imageView->setImage(Image("assets/tile256.jpg"));
        container->add(imageView);
    }
}
ScrollView *scrollView = ScrollView::create(container).preferredSize(300,300);
scrollView->setHorizontalAlignment(HorizontalAlignment::Center);
scrollView->setVerticalAlignment(VerticalAlignment::Center);
scrollView->setMaxHeight(300);
scrollView->setMaxWidth(300);
ScrollViewProperties *scrollViewProperties = scrollView->scrollViewProperties();
scrollViewProperties->setScrollMode(ScrollMode::Both);
scrollView->zoomToPoint(300,500,1);
QRectF qRectf = scrollView->viewableArea();
qRectf.setX(300);
qRectf.setY(300);
page->setContent(scrollView);
app->setScene(page);

これが私が試したものです。

4

1 に答える 1

0

コントロールを特定の領域にドッキングするには、コンテナ DockLayout のレイアウトを設定し、そこにコントロールを追加します。そのため、コントロールが拡大/縮小されても、指定された領域にドッキングされます。ここでは、Container に ScrollView を追加し、そのコンテナーをページのコンテンツとして設定します。

Page *page = new Page();

Container *mainContainer = new Container(); //This is the main container of the page
mainContainer->setLayout(new DockLayout()); //To dock scroll view at center of the screen

Container *container = new Container();
...
...
...
mainContainer->add(scrollView);//Add scroll view to the main container
page->setContent(mainContainer);//Set main container as the content
app->setScene(page);
于 2012-12-31T13:06:17.313 に答える