Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: Sandoran от Август 05, 2011, 10:21



Название: Перевод приложения из Qt3 в Qt4
Отправлено: Sandoran от Август 05, 2011, 10:21
Здравствуйте, форумчане!

Столкнулся с такой проблемой - быть может, на форуме она тривиальна. Есть программа, написанная в Qt 3.3.3 (среда ПС Конструктор, грубо - русифицированный Qt Designer).
Задача - перевести приложение в Qt4. В наличии - все исходники проекта, Makefile  и т.д. ПС Конструктора, моего родного, под Qt4 не существует. В среде Qt4 использовал Qt Designer - перевёл формы в Qt4. Далее планирую использовать Qt Creator, если понадобится дописать код (как я понимаю, из Qt Designer редактор кода изъят).
Что я сделал далее:
1) Добавил в .pro-файл QT += q3support.
2) Создал отдельный .qrc-файл, в нём конкретно описал используемые в проекте иконки, добавил в .pro-файл RESOURCES += "Имя проекта".qrc
Эти 2 действия позволили избежать ошибок с qmake_image_collection.cpp

Теперь получаю ошибки следующего рода. На содержание файла main.cpp:

Код:
#include <qapplication.h>
#include <qtranslator.h>
#include "form0.h"
int main( int argc, char ** argv )
{
QApplication a( argc, argv );
Form0 *w = new Form0;
w->show();
//a.setMainWidget( w ); - В Qt4 в строке нет необходимости
int res = a.exec();
if ( w ) delete w;
return res;
}

 - Qt Creator выдает:

"'Form0' undeclared;
'w' undeclared;
syntax error before ';' token"

То же - при сборке вручную, через Makefile. (Иногда выдаёт конфликт 'File generated with too recent version of QtDesigner (4.0 vs 3.3.3)' )

Помогите, чем сможете ))






Название: Re: Перевод приложения из Qt3 в Qt4
Отправлено: GreatSnake от Август 05, 2011, 11:39
Цитировать
Иногда выдаёт конфликт 'File generated with too recent version of QtDesigner (4.0 vs 3.3.3)'
В путях вначале стоит qt3 и сборка идёт qt3 утилитами.

Пересозданные старые формы без переписки кода (http://www.doc.crossplatform.ru/qt/4.7.x/porting4-designer.html#uic-output) просто подгрузить не получится.
Самый простой путь - оставить старые формы без изменения и компилить их uic3 (http://www.doc.crossplatform.ru/qt/4.7.x/porting4-designer.html#working-with-uic3). Для этого в pro-файле нужно все старые формы прописать в FORMS3 (http://www.doc.crossplatform.ru/qt/4.7.x/qmake-variable-reference.html#forms3).

В общем читай Портирование на Qt 4 (http://www.doc.crossplatform.ru/qt/4.7.x/porting4.html).


Название: Re: Перевод приложения из Qt3 в Qt4
Отправлено: Sandoran от Август 09, 2011, 09:58
Спасибо. Инструмент портирования qt3to4 пробовал, да и сам Qt Designer 4 формы .ui переводит. В конце концов упёрся в разницу работы с базами данных - библиотеки DAO. Пробую ручной перенос библиотек, но как я понял, придётся использовать инструментарий в составе Qt Creator 4 и переписывать код для работы с БД.