Как использовать QML Screen Element - PullRequest
1 голос
/ 15 ноября 2011

Я хочу использовать свойства screen.height и screen.width описанного здесь элемента экрана QML: http://doc.qt.nokia.com/qt-components-symbian/qml-screen.html, чтобы я мог использовать якоря в своем приложении Qt с изменяемыми размерами.

Странно, я не могу найти, как это использовать.Простое использование screen.height или Screen.height приводит к ошибке поиска переменной.В документации говорится:

Экран отображается как свойство контекста с именем screen.Невозможно создать экземпляр объекта Screen в QML, но доступ к экрану должен осуществляться через свойство context.

Я думаю, что это может объяснить мой вопрос, но, поскольку я новичок в Qt, я нене знаю, что это значит.Пожалуйста, если кто-нибудь может просто помочь мне с моим глупым вопросом?

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Я понял, что использование set fullscreen изменяет размеры моего корневого объекта, поэтому через 5 часов переписывает приложение, чтобы использовать значения, относящиеся к корневому объекту.

0 голосов
/ 24 ноября 2011

Если вы используете Qt Creator 2.2.1, тогда используйте viewer.showFullScreen(); в main.cpp .

В старых версиях, где QmlApplicationViewer не генерируется автоматическиЯ использовал следующий код

QDesktopWidget *screen = QApplication::desktop();

QRect rect = screen->screenGeometry(-1);



int screenHeight = rect.height();

int screenWidth = rect.width();



delete screen;



QDeclarativeView *view = new QDeclarativeView;

if(screenHeight > screenWidth)

    view->setSource(QUrl("qrc:/StopWatchP.qml"));

else

    view->setSource(QUrl("qrc:/StopWatchL.qml"));



QObject *parentObject = qobject_cast<QGraphicsObject *> (view->rootObject());

parentObject->setProperty("width",screenWidth);

parentObject->setProperty("height",screenHeight);

, где QDesktopWidget используется для получения экрана и его соответствующего размера.

Если высота экрана больше, тогда я будузагрузите файл QML, предназначенный для портретного режима или в альбомном режиме.

...