Russian Qt Forum

Qt => Qt Quick => Тема начата: kibsoft от Декабрь 20, 2010, 03:42



Название: qml под разные экраны
Отправлено: kibsoft от Декабрь 20, 2010, 03:42
Не пойму один момент: если qt quick сделали для мобильных устройств (у них же разные размеры экранов), то почему во всех примерах в main.qml в итеме жестко прописаны width и height? Как я понял - это прописывается минимальный размер итема, т.е. уменьшить пользователь уже его не может, но вот растянуть может. Или нужно узнавать размер экрана и в main.qml делать биндинг для width и height? Например, width: screenWidth, где последнее - это полученная каким-то образом ширина экрана (через C++ или JS(если возможно)).

P.S. Под размеров имею ввиду разрешение экрана.


Название: Re: qml под разные экраны
Отправлено: whirlwind от Декабрь 21, 2010, 11:34
там еще якоря есть, как в делфи http://doc.qt.nokia.com/4.7/qml-anchor-layout.html


Название: Re: qml под разные экраны
Отправлено: kibsoft от Декабрь 21, 2010, 17:41
Я не про то.. В main.qml обязательно у итема нужно забивать width и height(если не забивать, то он не появится, т.е. 0, 0), например:
Код:
 import QtQuick 1.0

 Rectangle {
     id: page
     width: 500; height: 200
     color: "lightgray"

     Text {
         id: helloText
         text: "Hello world!"
         y: 30
         anchors.horizontalCenter: page.horizontalCenter
         font.pointSize: 24; font.bold: true
     }
 }
Здесь 500 и 200 являются минимальными для этого ректангла, т.е. уменьшить окно юзер не сможет. А если экран меньше? Для моб девайсов вообще нужно на весь экран. Поэтому назревает вопрос:
Цитировать
Или нужно узнавать размер экрана и в main.qml делать биндинг для width и height? Например, width: screenWidth, где последнее - это полученная каким-то образом ширина экрана (через C++ или JS(если возможно)).


Название: Re: qml под разные экраны
Отправлено: BlackTass от Декабрь 22, 2010, 00:56
QDeclarativeView::ResizeMode спасет отца русской демократии.


Название: Re: qml под разные экраны
Отправлено: twp от Декабрь 22, 2010, 11:44
Да, как написано в асистенте о qml viewer:
Цитировать
The QML Viewer is a tool for testing and developing QML applications. It is not intended for use in a production environment and should not be used for the deployment of QML applications. In those cases, the QML runtime should be invoked from a Qt application instead; see Qt Declarative UI Runtime for more information.
т.е. нет необходимости заботится о задании правильных размеров именно в qml-файле, а делать это нужно в приложении Qt. Примеры можно глянуть в \demos\embedded\ те что начинаются на qml*