LINUX.ORG.RU

Портирование приложения с Qt3 на Qt4


0

1

Хочу портировать приложение написанное с использование Qt3 и библиотек KDE3 на Qt4 без использования kde вообще. С чего начать? Сильно ли отличаются? Почитать что то сначала по Qt3 или сразу приступить к изучению Qt4? Что почитать что бы разобраться с интерфейсом KDE3 и выкинуть ненужное из исходников? Времени свободного много, проект интересен и как практика по GUI программированию на C++. С языком знаком теоретически, больших приложений не писал, так по мелочи.


По литературе ничего не посоветую, но если хочешь принести пользу на этом деле, то советую обратить внимание на SIM

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

Зачем он если есть psi? Мне не интересен этот проект. Мне под зарез нужно портировать приложение которое собирать как есть становится всё труднее и труднее из за устаревающих зависимостей.

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

Это open source, каждый занимается тем что ему конкретно интересно. Сделай сам и скажи себе спасибо сам...

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

Сильно ли отличаются?

Сильно.

С чего начать?

С чтения про утилиты uic3 и qt3to4 из состава Qt4. Последняя теоретически позволяет переводить проекты автоматом. Но при этом привязывает их к модулю Q3Support, которого в Qt5, например, уже нет, т.е. это полумера. Кроме того, у qt3to4 бывают проблемы с модифицированными версиями Qt3 не от тролльтеха (бывали такие чудеса в некоторых очень специфических дистрибутивах).

Если у тебя Qt не очень специфическая - используй qt3to4, а потом замени все устаревшие классы Q3* более современными. В Qt4 было много действий по унификации, в т.ч. на мой взгляд сомнительных, например, QString::find был заменён на QString::indexOf...

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

портировал бы уж сразу на Qt5

Какие преимущества у 5? Я так понимаю щас все вроде на 4 пишут в основном. А на 5 что там? GUI на JavaScript я слышал.

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

Какие преимущества у 5?

очень скоро он станет дефолтным практически везде

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

портировал бы уж сразу на Qt5

В Qt5 нет нужных инструментов. А «портирование» с Qt4 на Qt5 - гораздо более лёгкая процедура, там исходники на 99% совместимы.

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

Какие преимущества у 5?

Не ведись на этот развод, анонимус либо троллит, либо пукнул в лужу. Если ты совершишь подвиг переноса на четвёрку - с пятёркой _потом_ всё будет элементарно.

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

Судя по

Времени свободного много, проект интересен и как практика по GUI программированию на C++.

его, наверное, всё же заинтересует нормальный переезд с прицелом на дальнейшее развитие.

Но дело в том, что при наличии Qt3Support перевод можно производить постепенно. Сначала получить работающий прототип, а уже потом выпиливать лишнее.

Тем более, ТС сам признаёт, что знаний по сабжу у него практически нет. Махать в таких условиях через пропасть - не самая лучшая идея. Даже я, хоть и работал приличное время и с тройкой, и с четвёркой, предпочитаю эволюционный подход.

Прямо сейчас пятёрки у меня под рукой нет (до работы дойду - гляну), но насколько я помню, там нет не только модуля, но и утилиты qt3to4. Если там нет ещё и uic3, перенос декларативного UI вообще не возможен, а если есть uic3, но нет qt3to4 - возможен, но только при наличии уверенных знаний о структуре Qt, файлов проекта и др. и требует максимум задротства. Сам я этот путь прошёл (ибо в моём случае qt3to4 был неприемлем), но ТСу его ни в коем случае не пожелаю.

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

Тогда только через четвёрку!

В конце концов вот я прямо сейчас работаю над исходниками. которые без изменений собираются в 4 и 5 (под 5 собирает другой человек в другом месте).

wjay! Ты нас слы-ышишь? ;)

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

Добавь тег #слоупок. Сколько уже прошло, как 5 вышел? Зачем переписывать под уже устаревший (с точки зрения разработки) фреймворк?

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

Какие преимущества у 5?

1. 4-ку только багфиксят, она не развивается

2. Были переписаны некоторые внутренности, производительность у 5-ки в ряде случаев выше.

3. БОльшая модульность.

4. Новый синтаксис сигнал-слотов (с поддержкой лямбл и проверкой в compile-time). Увы, до сих пор нет проверки на наличие зарегистрированного типа через qRegisterMetaType, так что баги с пересылкой нетривиальных объектов между тредами через сигнал-слоты до сих пор надо ловить в runtime.

5. В 5-ке появились новые модули, добавлены некоторые фичи и наработки из библиотек KDE4.

6. Ещё большая кросс-платформенность, поддержка мобильных устройств.

GUI на JavaScript я слышал

Только если ты используешь QML. Никто не собирается убирать обычные виджеты.

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

4-ку только багфиксят, она не развивается

Это плюс, значит она стабильна.

из библиотек вырвиглазного убожества

fixed

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

Там больше речь идёт о невизуальных штуках:

Among the new features added by KDE developers are improvements to Qt's platform adaptations, a command line parser, file-type determination, file locking, and a series of X11-related features.

Также в Qt5 разработчики KDE добавили поддержку часовых поясов из KDE4.

Так что твой сарказм неуместен.

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