QtCreator, редактор форм и код
Всем добрый день. Я пишу в QtCreator и формы рисую в редакторе форм. Однако в последнее время редактор форм перестал работать: в нем все меняется, а при компиляции остается прошлый дизайн. Как пофиксить баг, кто сталкивался?
ЗЫ: или возможно наоборот сделать... в общем мешаются там где то эти файлы
Большое спасибо! Оказывается, каким-то чудом не редактируется через редактор форм(точнее перестал редактироваться) файл ui_имя_класса_формы.h
1. Наверняка стоит у каждого в целях debug/release разные директории, отличающиеся от директории, где хранятся сорцы.
2. В связи с этим, qmake генерирует правильный Makefile, однако в нем утилита make вызывает утилиту uic(ui compilation) чтобы сгенерить эти самые ui_*.h, которые почему-то генерируются где надо, но при компиляции программы используются все равно тот, что лежит в сорцах, а он там, понятное дело, не измененный, да и вообще он там не меняется никак, кроме как вручную его поправить.
Отсюда вывода 2:
1. Qt Creator самостоятельно НЕ редактирует и НЕ обновляет ui_*.h, хотя должен это делать, ведь после создания проекта первое время он это делает, а потом по непонятным причинам перестает.
2. qmake должен генерировать дополнительную строчку в Makefile для обновления того ui, в сорцах. Или же просто как-нибудь сделать так, чтобы при компиляции использовался файл в директории сборки. В общем, вариантов, масса.
А выхода 3:
1. Добавить особый этап сборки в каждую цель с вызовом утилиты uic и генерить этот файл в папке сорцев при каждой компиляции. Все бы ничего, однако раздражает каждый раз окошко "файл обновлен откуда-то, обновить его в редакторе" при компиляции программы. И никак от него не избавиться.
2. Собственно, все сборки для каждой цели перенести в директорию с сорцами, что грозит этим же надоедливым окошком и засоренностью директории. Мне, например, после этого чтобы залить сорцы на git приходится постоянно make clean делать и rm Makefile. Нахрена на git'е скомпиленные файлы?
3. Просто писать код руками и полностью отказаться от услуг Qt Designer и редактора форм в Qt Creator. Вообще, этот вариант, наверное, самый правильный и я им всегда пользовался в winapi, однако, когда перед тобой есть куча классов, которыми нужно только воспользоваться (я о Qt) и не писать все самому, хочется и дизайн тоже быстренько наваять, а не заморачиваться в деталях с кодом для построения внешнего вида. Конечно, это будет только для первых попыток написать визуальную часть вручную, однако, ой как лень это делать. Но, наверное, придется.
p.s. Апдейт: к моему дикому удивлению, после написания поста то самое вышеописанное надоедливое окошко перестало вылезать :)
есть еще один выход: поставить распоследнюю СДК вместе с креатором, там этот баг пофиксен
Позавчера Я обновлялся на одном компе, ставил чистую новую версию(от позавчера) на другом - не пофиксен.
В свойствах сборки проекта указываю его корень, креатор сам внутри создает подпапки релиз и дебаг, а все что накомпилит прямо в корень кидает, в релиз и дебаг только бинарники складывает.
Чисть периодически (Сборка-очистить всё). Хотя у меня такого глюка не наблюдается.
У меня тоже подобной проблемы не возникало. Причем в данный момент у меня проект состоит из кучи подпроектов, структура не сложная но немного необычная, и тем не менее всё окей. Правда, сегодня был какой-то странный глюк с ресурсами, и так и не разобрался в чем проблема и забил.. Были в ресурсы когда-то добавлены изображения (.png), которые через какое-то время оказались ненужными. Удалил я их из ресурсов (через creator), потом удалил физически, сделал полную чистку и пересборку проекта, и при сборке получил ошибку что эти файлы не найдены, и трубеются в каком-то там qrc_блабла.o.
Мне помогло, когда убрал теневую сборку в настройках проекта и пересобрал.