LINUX.ORG.RU
 
Gorthauer

QML, есть кактусоеды?


0

0

Собственно изучаю сие творение и пока не очень понимаю, каким образом оно работает с обычными Qtшными объектами Грубо говоря такой код работает

context.setContextProperty("MyObject",my_object);
my_object->setText("test");

Где
Text {
id: body
text: MyObject.text
}

А вот создал событие по таймеру, и там уже
my_object->setText("test");
перестал срабатывать.
Ну и можт кто знает, каким образом можно сделать нечто похожее на layout'ы ?


[#]  

Можно взглянуть на проект? На счет лэйоутов - есть же Row, Column, Grid, еще с промщью anchor'ов дохрена можно сделать.

()
[#] Ответ на: комментарий от revbruk 10.01.2010 6:34:28  
Gorthauer

Уже потихоньку разбираюсь. Но вот пока я привязал главную рамку к размеру виджета при помощи костылей. То есть пришлось расшарить сцену для QMLя. А потом переопределить setGeometry и там добавить два сигнала widthChanged и heightChanged, но может есть более красивый способ привязываться к размеру сцены? Кстати браузер из демок жжет, пишу из него

*** ()
[#] Ответ на: комментарий от Gorthauer 11.01.2010 12:50:34  

Я делал так.

qmlView = new QmlView(this);
qmlView->setContentResizable(true);
qmlView->setFocus();
...
QGridLayout *gridLayout = new QGridLayout(this);
gridLayout->setMargin(0);
gridLayout->addWidget(qmlView);
...

Тут создаем контекст, цепляем к нему компоненты(если qml файлов больше одного)
Дальше:

...
qmlView->setUrl(url);//url - main.qml
qmlView->execute();
resize(qmlView->sizeHint());
qmlView->updateGeometry();

Все замечательно растягивается)

()
[#] Ответ на: комментарий от revbruk 11.01.2010 18:24:33  
Gorthauer

У меня по большей части тоже, а вот хотел сделать border-image и она как то не растянулась сама собой(((

*** ()