1

我正在尝试学习 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();
}
4

1 回答 1

1

您的对象名称是“搜索”。

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

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

Qt creator 非常聪明,并为您提供一种自动补充。如果它在大多数情况下没有为您提供 GUI 对象的建议,则意味着您做错了。

于 2013-07-17T05:09:41.700 回答