Несколько файлов в C ++ / QT сводит меня с ума - PullRequest
0 голосов
/ 22 марта 2012

При компиляции моего проекта я получаю ошибку:

Ошибка: D: \ Programming \ Projects \ Aprovado \ examwindow.cpp: 6: ошибка: недопустимое использование неполного типа 'struct Ui:: ExamWindow '

Но в этом нет ничего плохого.Вот строка:

ExamWindow :: ExamWindow (QWidget * parent): QMainWindow (parent), ui (новый Ui :: ExamWindow)

Файлы: http://dl.dropbox.com/u/2181407/damn.rar

Хорошо, используя QT4 со следующими файлами в проекте: main.cpp, mainwindow.cpp, studywindow.cpp, mainwindow.h, studywindow.h, ui_mainwindow.h, ui_study.h, это работает,Когда я пытаюсь добавить остальные файлы, он начинает выдавать ошибки.

Я пытался, я пытался, я пытался, и я не могу выбраться из этого.

Не могли бы вы, ребята, помочь мне

Ответы [ 2 ]

4 голосов
/ 22 марта 2012

Предполагая, что ui_examcalendar.h является правильным заголовком, сгенерированным пользовательским интерфейсом для класса ExamWindow, вы должны изменить имя виджета верхнего уровня в конструкторе для файла ExamCalendar.ui

В настоящее время он называетсяForm поэтому сгенерированное имя класса пользовательского интерфейса Ui::Form, поэтому, если вы хотите Ui::ExamWindow, оно должно быть названо ExamWindow.

4 голосов
/ 22 марта 2012

Вы звучите довольно отчаянно, поэтому я решил скачать ваш код и посмотреть.

Я столкнулся с рядом проблем.Вы не включили файлы .ui, поэтому я ограничился тем, как далеко я смог зайти.Пройдя мимо, это была ошибка компиляции для examwindow.cpp, которая содержала Ui(new Ui::ExamWindow), которая должна быть ui(new Ui::ExamWindow).

После этого я получил ошибку за недопустимое использование неполного типа Ui::ExamWindow.В тот момент я заметил, что второе включение было для ui_examcalendar.h Это не правильно.Должно быть включение для ui_examwindow.h, но этот файл не существует в вашем архиве.

Я сдался после этого, извините.

После проверки ваших обновленных файлов:

Как отмечает @alexisdm, у вас есть некоторые проблемы с именами.Я получил все для компиляции, просто выполнив какое-то оптовое переименование, чтобы все было согласованно.

  • Переименуйте все файлы в строчные эквиваленты ваших .cpp файлов.
  • Откройте каждый .ui файл вв редакторе дизайна и задайте в качестве имени объекта значение верблюда, эквивалентное каждому файлу .cpp (ExamWindow, MainWindow и т.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...