2012-06-21 3 views
0

я боролся с этой ошибкой в ​​течение более двух часов:неполный типа и не может быть определен

error: aggregate 'Ui::UpdaterProgress updaterProgress' has incomplete type and cannot be defined 

У меня есть простой экран пользовательского интерфейса на Qt. Настройка с помощью диалога:

#include <ui_UpdaterProgress.h> 

    namespace Ui { 
    class UpdaterProgress; 
    } 
    .... 
    Ui::UpdaterProgress updaterProgress; 
    QDialog updateProgressDialog; 
    updaterProgress.setupUi(&updateProgressDialog); 

Это простой интерфейс с иконкой, двумя метками, прогресс бар и кнопка отмены. Я делаю что-то неправильно здесь?

Я получаю эту ошибку, если я не делаю опережающее объявление:

error: 'UpdaterProgress' is not a member of 'Ui' 
error: expected `;' before 'updaterProgress' 
error: 'updaterProgress' was not declared in this scope 
+0

'ui_UpdaterProgress.h' должно иметь определение. Какое сообщение об ошибке вы получите, если вы не отправляете объявление самостоятельно? –

+0

Если вы '# include'ing ui_UpdaterProgress.h, вам не нужно форвардное объявление. – Chris

ответ

1

ли вы определили класс UpdaterProgress в вашем .... ??? Перед тем как использовать его, определите класс UpdaterProgress в Ui::UpdaterProgress updaterProgress;. Само прототипирование ничего не может сказать о классе, поэтому ошибка неполного типа.

+0

Я дал имя по умолчанию для диалогового окна, когда я создал его с помощью созданного. Когда я давал UpdaterProgress в качестве диалога, он автоматически генерировал класс для меня, и он работал. – ssk

Смежные вопросы