Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: White Owl от Январь 31, 2014, 22:37



Название: Qt 5.2.0, qmake забыл как компилировать ui
Отправлено: White Owl от Январь 31, 2014, 22:37
Вот поставил себе наконец-то Qt5. (5.2.0) Ставил через online setup так что все настройки по умолчанию и все по идее должно работать.
Пытаюсь собрать старый проект собиравшийся последний раз в Qt 4.8.4.

Проблема:
Компилятор ругается на отсутствие ui_LoginDialog.h. Убедился что LoginDialog.ui есть. QtCreator его открывает и никаких проблем в нем не видно.
В Makefile.release есть зависимость
   release/moc_LoginDialog.cpp: ui_LoginDialog.h
Но вот зависимости ui_LoginDialog.h от LoginDialog.ui я там не вижу вообще.

Поднял бэкапы из 4.8.4 там в Makefile.release есть рецепт compiler_uic_make_all с перечислением всех uiс-создаваемых заголовков. И рецепты для всех ui_*.h, а вот в Makefile.release от новой версии я таких рецептов не вижу вообще.

Кто виноват, что делать и вообще как дальше жить?


Название: Re: Qt 5.2.0, qmake забыл как компилировать ui
Отправлено: Old от Январь 31, 2014, 22:40
добавьте его в pro файл, переменная FORMS:
FORMS += LoginDialog.ui


Название: Re: Qt 5.2.0, qmake забыл как компилировать ui
Отправлено: White Owl от Январь 31, 2014, 22:46
добавьте его в pro файл, переменная FORMS:
FORMS += LoginDialog.ui
Повторяю: проект прекрасно собирался (и собирается) в 4.8.4.


Название: Re: Qt 5.2.0, qmake забыл как компилировать ui
Отправлено: Old от Январь 31, 2014, 22:57
Повторяю: проект прекрасно собирался (и собирается) в 4.8.4.
Я надеюсь из каталога сборки все было убрано и выполнен qmake от Qt5?


Название: Re: Qt 5.2.0, qmake забыл как компилировать ui
Отправлено: White Owl от Январь 31, 2014, 23:09
Повторяю: проект прекрасно собирался (и собирается) в 4.8.4.
Я надеюсь из каталога сборки все было убрано и выполнен qmake от Qt5?
Естественно. Это далеко не первый мой компилируемый проект.
Скопировал все исходные файлы проекта, убил все промежуточные. Запустил новый QtCreator, открыл в нем *.pro, открыл вкладку проекта, убедился что выбран правильный toolchain и все пути показывают на свеженькую копию qt5. Это далеко не первый мой Qt проект.
Подозреваю что проблема в разнице между Qt4 и Qt5, но не понимаю где именно.



Название: Re: Qt 5.2.0, qmake забыл как компилировать ui
Отправлено: Old от Январь 31, 2014, 23:14
Подозреваю что проблема в разнице между Qt4 и Qt5, но не понимаю где именно.
А к переменной QT widgets добавили:
QT += widgets


Название: Re: Qt 5.2.0, qmake забыл как компилировать ui
Отправлено: White Owl от Январь 31, 2014, 23:30
Подозреваю что проблема в разнице между Qt4 и Qt5, но не понимаю где именно.
А к переменной QT widgets добавили:
QT += widgets
Нет, а.... о! вот оказывается в чем дело было.
QtGui разрезали на модули...

Все. Заработало.
Значит если модуль widgets явно не подключен, то qmake ничего не знает про ui файлы. Будем знать.


Название: Re: Qt 5.2.0, qmake забыл как компилировать ui
Отправлено: lesav от Февраль 01, 2014, 11:21
QT += widgets

Код:
greaterThan(QT_MAJOR_VERSION, 4): {
    # Если сборка идет в Qt5 и сборка с GUI добавить модуль widgets
    contains( QT, gui ): QT += widgets
}