QTextEdit

时间:2017-08-19 09:07:31

标签: c++ qt fonts qt5 ubuntu-16.04

我正在学习Qt并运行Qt SDK 5.9.1中的示例。我运行下面的代码并在QTextEdit中写入但没有文本出现。光标在我写入时移动但没有显示文本。显示窗口标题文本。我在网上找到了addApplicationFontsetFont以下的调用,但它没有帮助。

#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QFontDatabase::addApplicationFont("://Ubuntu-R.ttf");
    app.setFont(QFont("Ubuntu", 11, QFont::Normal, false));

    QTextEdit textEdit;
    textEdit.show();

    return app.exec();
}

我在Ubuntu 16.04上并在bash上运行以下命令以生成可执行文件:

qmake -makefile
make
./part1

我希望应用程序使用默认的Ubuntu系统字体。我了解到Qt使用字体配置字体,但我不知道如何追踪问题。

修改

我认为QFontDatabase::addApplicationFont("://Ubuntu-R.ttf")调用引用的系统字体,而是引用字体应用程序资源文件。我没有资源文件,所以很明显它不会工作。

.pro文件位于下方(未修改的示例文件):

QT += widgets
SOURCES = main.cpp

# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tutorials/gettingStarted/gsQt/part1
INSTALLS += target

我尝试使用QFontDatabase获取系统字体,但它没有工作:

app.setFont(QFontDatabase::systemFont(QFontDatabase::GeneralFont));

这不会对包含QFontDatabase::GeneralFont

在内的任何枚举值执行任何操作
QFontDatabase database;
QStringList fam = database.families();

fam大小为零。

我将尝试使用嵌入式字体。

1 个答案:

答案 0 :(得分:1)

我不知道问题的确切原因,但原因是在构建qt之前没有正确配置fontconfig依赖项。我通过重新配置和重新编译qt解决了它。您可以在qt forum找到更多详细信息。