2015-03-30 2 views
5

В моем проекте Qt используется теневая сборка.
Когда я изменяю форму MainWindow (файл .ui), я строю проект, но моя программа не обновляет графический интерфейс.
Если я перестрою все, графический интерфейс будет обновлен. Но перестройка очень медленная.
Я пытаюсь создать новый проект (пустой QMainWindow с некоторыми ярлыками), я изменяю некоторые тексты. Я строю и графический интерфейс обновляется.QtCreator Build не обновляет изменения пользовательского интерфейса в форме проекта

Как правильно использовать теневую сборку, не перестраивая весь мой проект?

+0

Повторите попытку создания нового графического проекта с использованием теневых построений. Это будет проверять, если проблема связана с теневыми сборками в целом или только в вашем проекте. Я думаю, что ошибка в вашем .pro-файле или что-то подобное (вы используете CMake, qmake, что-нибудь еще?) – Antwane

+0

У меня такая же проблема, и это кажется ошибкой для меня. Смотрите мой комментарий в этой теме: http://stackoverflow.com/questions/4382652/qt-designer-does-not-update-the-gui – rusty

ответ

0

Вы пытались запустить qmake (Build -> Run qmake)?

Редактировать
Как полагает комментарий, я скопировал свой комментарий, чтобы сохранить его.
Кажется, что QtCreator правильно перестроил .h-файл ui в каталоге создания теней, а затем включил те в исходный каталог, который не был регенерирован. Я не знаю, является ли это ошибкой или предполагаемым поведением, но быстрым решением может быть сборка проекта в каталоге теневой сборки, копирование сгенерированных файлов .h обратно в исходный каталог и повторная перестройка. Эта работа с моим простым проектом, не знаю, может ли быть работоспособным и для более крупного и сложного проекта. Или не используйте теневые сборки

+0

Это не работает. – shang12

+0

Вы правы, я отследил его. – Gianluca

+0

Заполните предыдущий комментарий. Кажется, что QtCreator правильно перестроит .h-файл ui в каталоге теневой сборки, а затем включит те из исходного каталога, который не регенерирован. Я не знаю, является ли это ошибкой или предполагаемым поведением, но быстрым решением может быть сборка проекта в каталоге теневой сборки, копирование сгенерированных файлов .h обратно в исходный каталог и повторная перестройка. Эта работа с моим простым проектом, не знаю, может ли быть работоспособным и для более крупного и сложного проекта. Или не используйте теневые сборки – Gianluca

0

закрыть создатель Qt, перейти в каталог проекта и удалить файл .pro.user, снова открыть проект, и на этот раз создатель Qt попросит вас настроить ваш проект, выбирая набор, который вы используете для создания вашего проекта. Выберите соответствующий набор и нажмите кнопку «настроить проект». Примените теневую сборку. Надеюсь, это сработает.

+0

После выбора комплекта build = rebuild all. Он работает, но если я снова сменю UI, соберите, моя программа все еще работает со старым графическим интерфейсом. – shang12

+0

Дайте фокус вашему файлу .ui в дереве проекта, затем перейдите в Build-> Build File «ваш UI.ui» –

+0

Когда я изменяю файл ui, я строю свой проект, я проверяю ui_mainwindow.h, код в этом файле был но моя программа по-прежнему работает со старым интерфейсом. – shang12

1

Эта же проблема возникает, если имя файла *.ui изменено.

Например, изменить yourUi.ui на myUi.ui.

Если это сценарий, то также следует изменить ui_*.h, то есть yourUi.ui - ui_myUi.h.

Смежные вопросы