2017-08-19 1 views
0

Ich lerne Qt und laufende Beispiele aus Qt SDK 5.9.1. Ich führe den folgenden Code aus und schreibe in QTextEdit, aber es erscheint kein Text. Der Cursor bewegt sich, während ich schreibe, aber es wird kein Text angezeigt. Fenstertiteltext wird angezeigt. Ich fügte addApplicationFont und setFont Anrufe unten hinzu, die ich vom Netz zur Probe fand, aber es half nicht.Unsichtbarer Text in 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(); 
} 

Ich bin auf Ubuntu 16.04 und folgende Befehle auf bash ausführen ausführbar zu machen:

qmake -makefile 
make 
./part1 

Ich mag die App das Standard-Ubuntu-System Schriftart verwenden. Ich habe gelernt, dass Qt fontconfig für Schriftarten verwendet, aber ich weiß nicht, wie ich das Problem verfolgen kann.

bearbeiten

Ich dachte QFontDatabase::addApplicationFont("://Ubuntu-R.ttf") Aufruf referenzierten Systemschriftart sondern Schriftart App Ressourcendatei es verweist. Ich habe keine Ressourcendatei, also wird es offensichtlich nicht funktionieren.

.proDatei unter (unmodifiziert Beispieldatei):

QT += widgets 
SOURCES = main.cpp 

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

ich versucht, mit QFontDatabase Systemschriftart zu bekommen, aber es hat nicht funktioniert:

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

Das macht nichts mit einem ENUM-Werte einschließlich QFontDatabase::GeneralFont

QFontDatabase database; 
QStringList fam = database.families(); 

fam siz e ist Null.

Ich werde versuchen, eingebettete Schriftart als nächstes zu verwenden.

Antwort

1

Ich kenne nicht den genauen Grund des Problems, aber der Grund war nicht ordnungsgemäß konfigurieren fontconfig Abhängigkeit vor dem Erstellen von qt. Ich habe es gelöst, indem ich qt neu konfiguriert und neu kompiliert habe. Weitere Informationen finden Sie unter qt forum.