С Harmattan на Symbian
(релиз Qt SDK на момент написания данной статьи - 1.2.0)
Сейчас я развлекаюсь тем, что переношу приложение, написанное мною для Nokia N9 с Meego Harmattan на Nokia C6 с Symbian Anna. И, дабы вы не наступали на мои грабли и не ломали себе мозг, я вам расскажу несколько основных ошибок, да парочку изменений, который я внёс в проект.
Моя первая проблема, которую я разгрёб с огромных трудом и большой потерей времени:
elf2e32 : Error: E1025: Unrecognized capability : BAD CAP.sbs : warnings: 16sbs : errors: 2built 'arm.v5.udeb.gcce4_4_1'Run time 17 secondssbs: build log in D:\Dev\QtSDK\Symbian\SDKs\Symbian3Qt474\epoc32\build\Makefile.2012-02-15-13-43-53.94-1812.logmake.exe: Leaving directory `D:/workspace/glomacstracker' FAILED linkandpostlink for arm.v5.udeb.gcce4_4_1: epoc32\release\armv5\udeb\glomacstracker.exe mmp: glomacstracker_exe.mmp mingw32-make[1]: *** [D:/Dev/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/glomacstracker.exe] Error 1sbs: error: The make-engine exited with errors.make.exe: *** [debug-gcce] Error 113:44:10: Процесс «D:\Dev\QtSDK\Symbian\SDKs\Symbian3Qt474\epoc32\tools\make.exe» завершился с кодом 2.Возникла ошибка при сборке проекта glomacstracker (цель: Устройство Symbian)Во время выполнения сборки на этапе «Сборка»
В моём случае необходимо было лезть в .pro файл проекта и перебирать symbian:TARGET.CAPABILITY
Проверяйте каждый подключенный модуль по отдельности.
Самое необходимое изменение в QML:
уберите подключение библиотеки com.nokia.meego, ибо вы пишете под симбу, вместо неё подключайте библиотеку com.nokia.symbian.
Dialog и DatePickerDialog
Мой Dialog выглядел следующим образом:
Dialog { id: errorDialog title: Rectangle { color: "#DDDDDD" width: parent.width * 0.8 //anchors.verticalCenter: parent.verticalCenter anchors.fill: parent height: 80 radius: 5 Text { text: errorText anchors.fill: parent verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter font.pixelSize: 35 } } }
Так вот, в случае с Symbian значение title - находится только в заголовке, небольшой области, составляющей по высоте 25% от всей области диалогового окна.
Если у вас значительное количество текста (как у меня), его необходимо передать в свойство content, которое задаётся аналогичным способом.
Кроме того, если ваше диалоговое окно не содержит кнопок, в отличие от Harmattan, оно не закроется при клики за пределами диалогового окна. Чтобы это произошло, необходимо отдельно обработать метод onClickedOutside, в моём случае это выглядело так:
onClickedOutside: errorDialog.close()
В случае с DatePickerDialog, если вы не задаёте acceptButtonText какое-нибудь значение, то кнопок подтверждения у вас не будет :)
Остальные ошибки оказались мелкими, там переместить, тут переставить и т. д....
Комментариев нет:
Отправить комментарий