Quantcast
Channel: Qt DevNet forums: Qt Quick 1283365070**
Viewing all articles
Browse latest Browse all 4972

Need Help with QML/C++ resizing

$
0
0
Hello everybody, Using Qt4.8 I’m facing a problem in a QML/C++ project where the QML contents do not adjust when I resize the window despite calling setResizeMode with SizeRootObjectToView. A grey border will appear when I extend the window past its original resolution as shown in the first image in the following small album HERE [imgur.com] Next I tried implementing the resize event of the QWidget class. The event handler then generates a signal to explicitely tells the QML part to resize the top instance. It does resize the QML code, but the grey mask is still there and covers the interface, as shown in the second screenshot of the album. There are 15 green squares anchored to the right border of the top QML instance. Notice how they connect to the grey mask in the first case, and connect to the edge of the window behind the grey mask in the second! I’m kind of stumped, does anyone have suggestions on how I can solve this? Here’s a choice cut from the top C++ object and QML class but I can provide more if it helps. QmlContainer::QmlContainer(QWidget *parent) :     QWidget(parent) {     QSize qmlContainerSize(WINDOW_X, WINDOW_Y);     //this->setFixedSize(qmlContainerSize);     this->setMinimumSize(qmlContainerSize);       viewer = new QmlApplicationViewer(this);     viewer->addImportPath(QLatin1String("modules"));     viewer->rootContext()->setContextProperty("mainWidget", this);     viewer->rootContext()->setContextProperty("gammaBackend", gamma);     viewer->rootContext()->setContextProperty("mainWidgetX", this->size().width());     viewer->rootContext()->setContextProperty("mainWidgetY", this->size().height());     viewer->engine()->addImageProvider(QLatin1String("pgrgraph"), graph);       viewer->setOrientation(QmlApplicationViewer::ScreenOrientationLockLandscape);     viewer->setResizeMode(QmlApplicationViewer::SizeRootObjectToView);     viewer->setMainQmlFile(QLatin1String("qml/sentryPgrViewer/main.qml"));     viewer->showExpanded();     } import QtQuick 1.1   Rectangle {     id: top     color: "#FFD0FF"     width: 1024     height: 600       Row {         anchors.right: top.right         spacing: 20           Repeater {             model: 15               Rectangle { width: 20; height: 20; color: "green" }         }     }     //For second example     Connections {             target: mainWidget;             onSizeChanged: top.width = mainWidget.width         } }//Top Thank you very much! Leo

Viewing all articles
Browse latest Browse all 4972

Trending Articles