Виджет конструктора QCreator недоступен из кода программы - PullRequest
0 голосов
/ 09 февраля 2012

Предисловие: Я использую Qt Creator 2.4.1 (на основе Qt 4.7.4, 64-bit) на Mac OS X Lion, установленной через Qt SDK.

Я работаю над проектом, в котором у меня есть пользовательский интерфейс, созданный с помощью дизайнера в QCreator.У меня есть несколько виджетов, работающих без проблем.Я создал новый виджет QPushButton, перетащив его из палитры desiger и установив некоторые свойства в конструкторе.Однако я не могу получить к нему доступ из исходного кода, используя соглашение ui -> [widget].Я могу получить доступ к любому другому виджету в форме, как и ожидалось.Поиск по сайту дал одну похожую проблему , однако указанное решение не работает для меня.

Я пробовал:

  • Чистая, полная перестройка
  • Повторное выполнение qmake
  • Перезапуск QCreator

Я проверил сгенерированный XML-файл элемента пользовательского интерфейса и включил виджет с правильными objectName и свойствами, но покаЧасть исходного кода конструктора не видит его.

1 Ответ

0 голосов
/ 10 февраля 2012

Я решил эту проблему, удалив текущий рабочий каталог, извлекая последний источник из системы управления версиями и создав новый проект. После дальнейшего изучения я обнаружил, что файл ui_mainwindow.h, который генерируется при каждой компиляции qmake, был перемещен в каталог с исходными файлами, а не в каталог сборки, что должно было вызвать внутренний конфликт с QCreator, где он не будет восстанавливать его и просто копировать старый в папку сборки. Удаление файла, вероятно, сработало бы, если бы я его увидел и сэкономило мне время, чтобы начать все заново.

...