QTextEdit 中的不可见文本



我正在学习Qt并从Qt SDK 5.9.1运行示例。我运行下面的代码并在QTextEdit中编写,但没有出现文本。光标在我写作时移动,但没有显示文本。将显示窗口标题文本。我在下面添加了addApplicationFontsetFont从 web 找到的调用到样本中,但没有帮助。

#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使用fontconfig作为字体,但我不知道如何追踪这个问题。

编辑

我以为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大小为零。

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

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

最新更新