我是Qt的新手,並已從示範程序here開始。我已將類AddressBook重命名爲Dialog。它編譯和執行得很好。我想我自己的代碼添加到的例子,所以我添加了一個新的標籤作爲類的私有成員:演示程序錯誤:''未在此範圍內聲明
private:
QCheckBox *native;
QLabel *integerLabel;
QLabel *doubleLabel;
QLabel *itemLabel;
...
QLabel *questionLabel;
QLabel *warningLabel;
QLabel *errorLabel;
QLabel *newLabel; // <== This is new
QErrorMessage *errorMessageDialog;
在構造函數對話框::對話框我(嘗試)分配內存的變量:
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和改變它的名字。然而,編譯器會發出錯誤:
error: 'newLabel' was not declared in this scope
當我點擊了錯誤,它需要我在構造函數中的「新」行。如果我在構造函數中指出newLabel中的兩行,則該程序將進行編譯。它在我的腦海裏。我在這裏犯了什麼錯誤?我們如何在將來防止這些類型的問題? (我搜查了幾十個類似的帖子,並且能夠在30s或更少的時間內識別OP的錯誤,但是我找不到我自己的錯誤,我也不能找到在類中聲明變量但在構造函數中找不到變量的帖子。)
由於提前, 凱爾
所以我不得不問。添加了'QLabel * newLabel'這行代碼後,是否真的保存了頭文件? – Chris 2013-05-13 17:44:47
好問題,答案是肯定的(現在很多次)。謝謝。 – Kyle 2013-05-13 17:55:23
你在使用Qt創建器嗎?如果是這樣,當您在構造函數中右鍵單擊「newLabel」並從上下文菜單中選擇「在光標後面跟上符號」時會發生什麼?你有沒有嘗試重建你的項目? – thuga 2013-05-14 08:54:28