Создатель QT не обновляет файл .ui и конструктор - PullRequest
1 голос
/ 03 июля 2019

Я работаю над добавлением некоторых новых функций в графический интерфейс, который кто-то ранее создал с помощью QT Creator. Сначала я попытался отредактировать его от дизайнера, но сделанные мной изменения не появились, когда я запустил проект. Поэтому я добавил несколько новых кнопок из файла .h, а также добавил некоторые функциональные возможности к кнопкам в файле .cpp, и они работают нормально, когда я запускаю проект, но внесенные изменения не отображаются в конструкторе.

Я попытался отключить теневую сборку, перестроить все, удалить файлы .cpp и .h из файла .pro и построить заново, но ни один из них не сработал.

Что я могу сделать, чтобы изменения, внесенные в файл .h, были видны в конструкторе?

Примечание: я использую QT Creator 4.9.1 в Windows 10

1 Ответ

1 голос
/ 03 июля 2019

Qt Designer предназначен только для редактирования файла XML (.ui). И только изменения, внесенные в этот файл, видны в Qt Designer. Добавление любого элемента GUI через код (в файлах .cpp) не отображается в Qt Designer.

Так почему ваши изменения, сделанные в Qt Designer, не видны? Там может быть слишком много причин. Одна из наиболее распространенных, которые приходят мне в голову, это продвижение виджетов в Qt Designer. Откройте файл .ui и проверьте, является ли виджет, в который вы пытаетесь добавить что-либо, действительно QWidget, QLabel ... и т. Д. Если что-то не является базовым классом Qt, тогда ваши изменения будут перезаписаны, когда файл .ui будет MOC'd. Вы также можете посмотреть на файл MOC, чтобы получить полезную информацию (автоматически сгенерированный файл ui_something.h). Также есть несколько файлов .ui? Попробуйте добавить к ним что-нибудь и посмотрите, что произойдет, если вы запустите проект.

РЕДАКТИРОВАТЬ: Что именно вы подразумеваете под changes I made in the .h file? Если вы имеете в виду автоматически сгенерированный файл ui_something.h, он будет перезаписан, как только вы создадите свой проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...