Класс Qt отключен от своего файла .ui? - PullRequest
0 голосов
/ 05 ноября 2010

Каким-то образом мои MainWindow в моем проекте qt стали несвязанными с .ui, созданным мной в qt designer (я использую qt creator в качестве своей IDE). Файл реализации имеет оба:

#include "mainwindow.h"
#include "ui_mainwindow.h"

Но если я добавлю виджет (например, lineEdit) в пользовательский интерфейс в конструкторе, если я попытаюсь что-то сделать с этим виджетом в моей реализации, я получу ошибку (и, конечно, автозаполнение не обнаружить этот виджет).

Кто-нибудь может помочь? Пожалуйста, дайте мне знать, если это не достаточно описательно. Спасибо!

[ 1012 * EDIT *]
Похоже, это проблема моего перехода с qt 4.6 на qt 4.7. В Qt4.6 файлы заголовков, сгенерированные для пользовательского интерфейса, были помещены в тот же каталог, что и проект. В Qt4.7 он помещает их в каталог сборки. Поэтому я обновил заголовочные файлы, но моя программа ссылалась на неправильный. К сожалению, сейчас я не могу заставить его ссылаться на нужные заголовочные файлы. Есть идеи?

1 Ответ

1 голос
/ 06 ноября 2010

Если исходить из проекта, основанного на qmake, по умолчанию, при создании нового файла у вас есть возможность выбрать, будет ли он добавлен в проект. Вы выбираете это в форме флажка «Добавить в проект» в диалоговом окне «Управление проектами».

Чтобы убедиться, что форма управляется QtCreator, отредактируйте файл .pro вашего проекта, чтобы он видел файл .ui, добавив запись в FORMS. Например, если у вас есть одна форма mainwindow.ui и вторая newdialog.ui, которую необходимо добавить, вы можете изменить ее, используя любой из следующих параметров:

Вариант 1:

FORMS += mainwindow.ui \
    newdialog.ui

Вариант 2:

FORMS += mainwindow.ui newdialog.ui

Вариант 3:

FORMS += mainwindow.ui
FORMS += newdialog.ui

Первый параметр используется QtCreator 1.3.1.

Пока файлы ui зарегистрированы в FORMS, make-файлов, сгенерированных qmake, должно быть достаточно для текущей версии, будь то Qt-4.6 или Qt-4.7.

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