J'apprends des exemples de Qt et d'exécution à partir de Qt SDK 5.9.1. Je cours le code ci-dessous et écris dedans QTextEdit mais aucun texte n'apparaît. Le curseur se déplace pendant que j'écris mais aucun texte n'est affiché. Le texte du titre de la fenêtre est affiché. J'ai ajouté addApplicationFont
et setFont
appels ci-dessous j'ai trouvé du web à l'échantillon mais cela n'a pas aidé.Texte invisible dans QTextEdit
#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();
}
Je suis sur Ubuntu 16.04 et exécuter des commandes suivantes sur bash pour rendre exécutable:
qmake -makefile
make
./part1
Je veux l'application d'utiliser la police par défaut du système Ubuntu. J'ai appris que Qt utilise fontconfig pour les polices, mais je ne sais pas comment tracer le problème.
Modifier
Je pensais que QFontDatabase::addApplicationFont("://Ubuntu-R.ttf")
police système référencé appel mais il fait référence fichier de ressources de l'application de la police. Je n'ai pas de fichier de ressources donc évidemment, ça ne marchera pas.
fichier .pro est ci-dessous (fichier non modifiée de l'échantillon):
QT += widgets
SOURCES = main.cpp
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tutorials/gettingStarted/gsQt/part1
INSTALLS += target
J'ai essayé de la police du système en utilisant QFontDatabase mais cela n'a pas fonctionné:
app.setFont(QFontDatabase::systemFont(QFontDatabase::GeneralFont));
Cela ne fait rien avec l'une des valeurs enum y compris QFontDatabase::GeneralFont
QFontDatabase database;
QStringList fam = database.families();
fam
siz e est zéro.
Je vais essayer d'utiliser la police intégrée suivante.