'search'未在此范围内声明

'search' was not declared in this scope

本文关键字:范围内 声明 search      更新时间:2023-10-16

我正在尝试学习C++,并且我正在使用Qt框架。我目前正在努力完成的是从资源文件中加载一个自定义字体。当我运行这个程序时,File Found会输出到控制台窗口。当我取消注释注释行时,我得到一个错误'search' was not declared in this scope。在Qt Creator中,我将objectName设置为search。我以为我可以像写评论行一样访问它,但我想我做不到。我做错了什么?

int main(int argc, char *argv[]){
    QApplication a(argc, argv);
    Apollo w;
    w.show();
    int fontID(-1);
    QFile res(":/lib/fonts/SourceCodePro-ExtraLight.ttf");
    if(res.open(QIODevice::ReadOnly) == true){
        fontID = QFontDatabase::addApplicationFontFromData(res.readAll());
        if(fontID == -1){
            qDebug() << "File Not Found";
        }else{
            qDebug() << "File Found";
        }
    }
    //search.setFont(QFont("Source Code Pro ExtraLight", 26));
    return a.exec();
}

您的对象名称是"search"。

我想这个对象是GUI的一部分,所以如果你想访问它,你应该这样做:

ui->search->setFont(...);

Qt创建者非常聪明,为您提供了一种自动补充。如果它在大多数情况下都没有为GUI的对象提供一个命题,那就意味着你做错了。