Ошибка демонстрационной программы: » не был объявлен в этой области

Я новичок в Qt и начал с найденной демо-программы Вот. Я переименовал класс AddressBook в Dialog. Он компилируется и выполняется просто отлично. Я хочу добавить свой собственный код в пример, поэтому я добавляю новый ярлык как закрытый член класса:

private:
QCheckBox *native;
QLabel *integerLabel;
QLabel *doubleLabel;
QLabel *itemLabel;
...
QLabel *questionLabel;
QLabel *warningLabel;
QLabel *errorLabel;
QLabel *newLabel;     // <== This is new
QErrorMessage *errorMessageDialog;

В конструкторе Dialog :: Dialog я (пытаюсь) выделить память для переменных:

warningLabel = new QLabel;
warningLabel->setFrameStyle(frameStyle);
QPushButton *warningButton = new QPushButton(tr("QMessageBox::&warning()"));

errorLabel = new QLabel;
errorLabel->setFrameStyle(frameStyle);
QPushButton *errorButton =
new QPushButton(tr("QErrorMessage::showM&essage()"));

newLabel = new QLabel;    // <== Error
newLabel->setFrameStyle(frameStyle);

Насколько я могу судить, я правильно создал и разместил переменную в этом классе, скопировав и вставив * errorLabel и изменив его имя. Тем не менее, компилятор выдает ошибку:

ошибка: ‘newLabel’ не был объявлен в этой области

Когда я нажимаю на ошибку, я перехожу на «новую» строку в конструкторе. Если я выделю две строки в конструкторе, ссылающиеся на newLabel, программа скомпилируется. Это находится в этой области в моем уме. Какую ошибку я здесь делаю? Как мы можем предотвратить подобные проблемы в будущем? (Я искал десятки похожих постов и смог определить ошибку ОП за 30 с или менее, но я не могу найти свою собственную и не могу найти пост, в котором переменные объявлены в классе, но не найдены в конструкторе.)

Заранее спасибо,
рукав моря

1

Решение

Я решил проблему. Хотя это и не тот ответ, который я ожидал, я публикую этот ответ на тот случай, если он будет полезен для остальной части сообщества.

Я создал новый проект и скопировал файлы cpp / h из нерабочего проекта в новый проект. Новый проект компилируется. С новым проектом я теперь могу добавлять другие закрытые переменные в класс и получать к ним доступ в конструкторе (а также в IDE). Все параметры у меня есть легкий доступ, чтобы показать, что проекты идентичны, но один компилирует, а другой нет. Я могу только заключить, что сам проект как-то испортился (что не внушает доверия).

Хотя я рад, что это не было глупой программной ошибкой с моей стороны, я разочарован тем, что не смог найти и исправить то, что было не так с файлами проекта. Спасибо всем, кто предложил свои предложения.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]