LINUX.ORG.RU

Разработка на Qt5

 , ,


0

4

Тема касается людей, занимающихся разработкой на Qt(5 версии).

Намечается довольно крупный велосипед проект, будет написан на Qt5. По вашему мнению, на сегодняшний день какая технология более перспективна — разработка GUI для приложения на QML либо же на старых добрых C++ виджетах?

из опыта по QML - задница с портированием, работает не везде, не всегда, иногда странно, короче проще и быстрее было обратно на виджеты переписать :)

я бы еще подождал

shty ★★★★★
()
Последнее исправление: shty (всего исправлений: 1)

Как мне кажется QML еще не готов, используйте лучше старый подход. Хотя я фанатичный противник QML, меня можно не слушать. ;-)

m0rph ★★★★★
()

Пиши на виджетах. Они уже сейчас достаточны, а QML будет когда-нибудь потом.

anonymous
()

Ты много видел крупных проектов на Qml? :)

Amp ★★★
()

Лучше виджеты.

Для телефона QML only. А всё почему — разрабы не хотят пилить Qt Widgets для мобильных платформ, они все обмазались QML и... ну ты понял.

a1batross ★★★★★
()

На ведроиде, sailfish и blackberry 10 я бы заюзал qml. На десктопе по старинке.

Shadow1251
()

Без требований к проекту этот вопрос имеет мало смысла, области применения QML и виджетов пересекаются узко.

Виджеты позволяют писать богатые приложения для десктопа, с окнами, диалогами, меню, панелями, выпадающими списками, таблицами, закладками и остальными достижениями прогрессивного человечества в области гуестроения за прошедшие пару десятков лет. При этом приложение будет выглядеть и вести себя как родное на платформе. Qt Designer заметно упрощает жизнь в разработке виджетов.

QML/Quick это по сути 2D-движок для OpenGL. Обзавёлся кое-какими контролами и стилями, иммитирующими GUI. Жизнь упрощает функциональщина, скрипты на JS. Визуальное редактирование присутствует, но лучше про него сразу забыть, язык изначально нацелен на редактирование руками. Хорошо работает когда приложение захватывает весь контекст экрана (или имеет набор простых окон) и предполагает полностью свой внешний вид в отрыве от целевой платформы. Хорош для встраиваемых решений, телефонов, игр.

Dendy ★★★★★
()

Все-таки буду начинать на виджетах, ну а если когда-нибудь начнет светить перспектива портирования на мобильные устройства, там и посмотрим:)

Daiquiri
() автор топика
Ответ на: комментарий от Daiquiri

отличное решение. а что писать то надумал?

MikeDM ★★★★★
()
Ответ на: комментарий от Daiquiri

Если один интерфейс между разными ОС можно сделать, то между разными платформами — нет. Иначе, оно на какой-то платформе начинает ужасно выглядеть.

С любым фреймворком так, не только с Qt.

a1batross ★★★★★
()
Ответ на: комментарий от Shadow1251

функциональщина

С декларативщиной не путаешь?

Декларативщина на основе функциональщины.

Dendy ★★★★★
()
Ответ на: комментарий от Daiquiri

Все-таки буду начинать на виджетах, ну а если когда-нибудь начнет светить перспектива портирования на мобильные устройства, там и посмотрим:)

если проект будет большим, то это будет эпичный гемор.

alex_custov ★★★★★
()

QML для десктопа в том виде, в котором есть сейчас, сойдет для быстрой разработки простых интерфейсов

если нужно что-то сложное - придется в твой велосипед встроить кучу маленьких велосипедиков

MyTrooName ★★★★★
()
Ответ на: комментарий от a1batross

Я понимаю, вероятно я не совсем корректно выразился. Точнее было сказать 'мобильная версия', а не 'портирование'

Daiquiri
() автор топика

+1 за виджеты, однако QML это будущее и однажды QML дорастет до идеального состояния

I-Love-Microsoft ★★★★★
()

C++, конечно. QML визуально помедленнее будет. И классы там uiшные кастрированы по самое небалуй. Зато, с другой стороны, красивый интерфейс (в плане кастомный) можно нарисовать легко и непринужденно.

// для десктопа, конечно.

// тред не читал

arcanis ★★★★
()

Под десктоп однозначно на виджетах. И, желательно, в коде сохранить совместимость с Qt4 (это очень просто). В Qt5 до сих пор не пофикшены баги и скорость отрисовки. Таким образом ты сможешь собрать приложение как под Qt4, так и под Qt5 и прочувствовать разницу сам.

EXL ★★★★★
()
Ответ на: комментарий от shty

Поддержу сего оратора.

у QML, в добавок ко всему, еще проблемы со старыми видеокартами. У меня, например, на вполне себе рабочем ноуте (3-х летнем) все QML аппликухи дичайше тормозят. Видел ноут с семеркой оффтопиком, на котором вообще вместо окон черные квадраты и лечилось только подсовыванием opengl32.dll, собранной из mesa. Самое интересное, что ихняя новая «Qt Quick 2D Renderer» нифига не помогает и даже делает хуже на системах, где до этого все работало. В общем при нокии такой херни не было.

ossa ★★
()
Последнее исправление: ossa (всего исправлений: 1)
Ответ на: комментарий от ossa

Да, я тоже негодую. Лучше бы виджеты допиливали. А они мало того, что испортили их (скорость отрисовки в Qt5 на 20% ниже, чем в Qt4). Сравните в qgears2.tar.bz2 сами: http://qt-project.org/forums/viewthread/25247 так ещё и шрифты сломали (как в винде, так и в Linux), интеграцию с системой нарушили (в Linux'е - выпил qtconfig, игнорирование fontconfig (я вообще словил butthurt, когда в Jira кто-то там сказал, что Qt5 — это единственный тулкит, правильно рендерящий шрифт ога), в Windows - мыльность шрифтов в некоторых диалогах, лаги и тормоза контекстных меню, деплой уровня /gentoo в котором хер без бутылки разберёшься, qtcore (!) стал зависим от 30MB'тной libicu и прочее непотребство).

И QML вообще ничего нового не предоставил. Постоянное ломание «QML API» бесит ну очень сильно: то, что работало раньше на Qt5.2.0, отваливается напрочь в Qt5.4.0, вплоть до невозможность сборки. Производительность ужасна. Я помню нокиевский QtQuick/QML, на старых и слабых телефонах работал ну просто нереально быстро! А тут вообще жесть какая-то.

А уж на андроиде багов вагон и маленькая тележка. Раньше Qt4 у KDE через их костыли и то лучше работал. Почему динамического переключения OpenGL <-> Canvas, как на десктопе, на Android'е нету? Почему ссылки из диалогов подсвечиваются, но не открываются браузером? Почему хреново пофиксили баг с клавишами громкости? (раньше они вообще не работали, теперь работают, но если приложение использует музыку (Music.Stream), изменяются сразу два уровня громкости: системный и музыки.

Даже не представляю, как с таким лагодромом Qt5 -> KDE5 будет весной в kUbuntu выходить. Сколько фиксили элементарный баг со шрифтом? Год? Два? Три? А сколько ЛОРчан мучались и мучаются с багом раскладки? Всё это для Linux'ов до сих пор не пофикшено в последнем Qt 5.4.0, хотя они обещали.

Всё-таки когда библиотека была у Nokia, было как-то спокойнее. У них был огромный штат тестировщиков (знакомый там работал) да и наоптимизировали они поделие ныне почившего Trolltech для своих девайсов очень неплохо. А от это выигрывали все, в.т.ч и десктопные пользователи.

EXL ★★★★★
()
Ответ на: комментарий от EXL

И, желательно, в коде сохранить совместимость с Qt4 (это очень просто)

Бери глобальнее. Если Qt5, то и C++11 (C++14), а там вкусные новые сигнал-слоты и прочие лямбды, и тогда совместимость с Qt4 будет нифига не простой.

Я бы сказал либо C++03 + Qt4 с up-совместимостью до Qt5, либо уже весь свежак и без обратной совместимости (ТС же все равно что-то новое пилит)

Stil ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.