我是 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 秒或更短的时间内识别出 OP 的错误,但我找不到自己的错误,也找不到在类中声明变量但在构造函数中找不到的帖子。)
在此先感谢,凯尔