LINUX.ORG.RU

Переход с Qt4 на Qt5

 


0

2

Интересует вот какой вопрос: есть ли смысл переводить проект с Qt4 на Qt5.

Наиболее интересно:
- много ли геммороя будет с перевод?
- какие плюсы может дать перевод?
- если кто уже переводил проекты, то прошу отписаться какие подводные камни могут возникнуть?


Особенности проекта:
- Работа с COM-портами (сейчас через qextserialport и qserialdevice)
- работа с PostgreSQL (сейчас через pqxx)
- шифрование (qca)
- сборка под платформами Linux, Windows
- сериализация (json)
- работа с http (сейчас через QNetworkAccessManager)
- многопоточночть


Заранее спасибо отписавшимся.



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

Если собираетесь долго поддерживать, то переводить имеет смысл, но обязательно ли сейчас?

Если нет гуя, то из плюсов в первую очередь можно отметить новые, на порядок быстрые, сигналы/слоты.

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

Для com портов средства есть, то, что вы назвали, по-моему и в Qt5 работает, pqxx как работал, так и останется работать, qca также. В Qt5 есть свои методы для работы с JSON. Сетевой стек вроде претерпел некоторые изменения, точнее не скажу.

Со кросс-сборкой проблем не будет.

Y ★★
()

- Работа с COM-портами (сейчас через qextserialport и qserialdevice)

Строго рекомендуется перейти на QtSerialPort..

kuzulis ★★
()

Переводил небольшой проект - было много сложностей с QML, но основное разжевано в официальной доке -
http://qt-project.org/doc/qt-5.0/qtquick/qtquick-porting-qt5.html
Зато взамен получил много новых плюшек с QML 2.1
Если особой надобности нет, то переводить имхо нет смысла - лишние действия, новые баги и т.д. С другой стороны, если вам это интересно, то почему бы и нет? :)

Deleted
()

Если есть возможность использовать c++11, то смысл переходить имеет: новый механизм сигналов вместе с лямбдами существенно упрощает и укорачивает код. Проблем с переносом виджетов быть не должно. В остальном могут быть какие-то изменения.

KblCb ★★★★★
()

Нет, оно еще слишком сырое и падучее.

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

Не сталкивался, но там вроде как без особых изменений всё прошло. Только в .pro файл добавить QT += widgets

Deleted
()

При переводе, некоторые вещи стали неожиданно депрекейтед
К примеру, setCodecForCStrings, setCodecForTr и подобное.
Ну и с цмейком поменяли достаточно сильно.

А так, в общем, не доставило большого труда.

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

Я не понимаю, а чего ждать то, когда рак на горе свистнет? :)
Иди когда будет некогда или поздно переводить?

Что мешает сделать вот так -
#if QT_VERSION < 0x050000
бла-бла
#else
бла-бла
#endif
Слава богу, такого в обычном коде будет мало.

zJes ★★
()

- много ли геммороя будет с перевод?

Нет.

- какие плюсы может дать перевод?

Из замеченых — небольшое повышение производительности.

- если кто уже переводил проекты, то прошу отписаться какие подводные камни могут возникнуть?

Не заметил таких. Хотя проект не большой, ~13к строк.

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

А ждать когда скажут: «Всё Qt5 полностью готов! Куча новых фич! Пофикшены все баги и тормоза!»

А серьезно ждать пока появиться свободное время. Я и так не слишком много плюсов видел в переходе, а многие говорят что пока сыровато. Так что в данный момент не хочу заморачиваться.

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

Если нет гуя, то из плюсов в первую очередь можно отметить новые, на порядок быстрые, сигналы/слоты.

Где почитать бенчмарки и с какой стати они стали быстрее? А то я на Qt5 но ими пока не пользуюсь... И что, даже в queued режиме между потоками они быстрее стали?

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