mainwindow.ui и ui_mainwindow.h не связаны? |
Здравствуйте, гость ( Вход | Регистрация )
mainwindow.ui и ui_mainwindow.h не связаны? |
NordWest |
26.2.2013, 10:35
Сообщение
#1
|
Студент Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0 |
В Креаторе правлю форму mainwindow.ui, но эти изменения не отражаются в программе. Т.е. сменил QTreeWidget на QTableWidget, но в программе не могу получить на него ссылку.
Выдает NULL. Pаглянул в ui_mainwindow.h, а там всё прежнее, с QTreeWidget. Пришлось вручную менять. Но получается, что ui форма никак не связана с проектом. Отказываться от Дизайнера и влезать в ui_mainwindow.h, который должен бы генерироваться из .ui файла? И почему он этого не делает? |
|
|
lanz |
26.2.2013, 10:56
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Чеклист:
0. ui добавлен в проект. 1. Сохранить ui в дизайне. 2. Собрать проект. Кроме того не обязательно делать FindChild, можно просто обращатся через ui
Сообщение отредактировал lanz - 26.2.2013, 10:57 |
|
|
NordWest |
26.2.2013, 11:41
Сообщение
#3
|
Студент Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0 |
Чеклист: 0. ui добавлен в проект. 1. Сохранить ui в дизайне. 2. Собрать проект. Кроме того не обязательно делать FindChild, можно просто обращатся через ui
Все три пункта. Добавил ui_mainwindow.h, пересобрал, ничего. Удалил его (переименовал), ничего. Не генерируется он совсем из .ui файла как написано у него же в заголовке. Может как-то командно можно его генерацию выполнить? Ага, дело в теневой сборке. Правильный фаил создается в отдельной директории. Но не понятно как к нему обратиться, ведь в mainwindow.cpp указан:
И убрав его получаешь ошибку. Ага, получилось. Видимо ui_mainwindow.h мешал в директории с исходниками. Нужно было его удалить, почистить проект и пересобрать. Тогда всё заработало. Сообщение отредактировал NordWest - 26.2.2013, 11:41 |
|
|
ilyabvt |
26.2.2013, 15:50
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: 3 |
Цитата Может как-то командно можно его генерацию выполнить? Можно. http://qt-project.org/doc/qt-4.8/uic.html |
|
|
Алексей1153 |
26.2.2013, 17:27
Сообщение
#5
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
NordWest, это такие грабли, связанные с местом расположения промежуточных файлов: к примеру, сначала была не теневая сборка, и файл ui_*.h сгенерился в папке проекта. Потом ты сменил настройки на теневую сборку, теперь файл генерится выше проекта, но! компилятор будет хватать старую версию файла (который не меняется после орудования в редакторе). Следовательно, в папке проекта следует удалить вручную все сгенерированные файлы. Потом полный ребилд - и всё наладится )
|
|
|
Litkevich Yuriy |
28.2.2013, 15:17
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
NordWest, я не вижу у тебя макроса Q_OBJECT.
Нет этого макроса - жди проблем |
|
|
Текстовая версия | Сейчас: 26.12.2024, 4:15 |