Solved Wrong text display : Qt 5.14 only
-
@Ulysse said in Wrong text display : Qt 5.14 only:
Thus my question : what should i look for ?
If you want to reproduce a bug, start, as already said, with a simple reproducer. If you then can't reproduce the issue - try to isolate the problem. Since it's a simple widget I'm pretty sure you don't need to touch every 250k lines...
-
We use the "roboto" TrueType font.
Commenting theQFontDatabase::addApplicationFont(":/police/roboto.ttf");
line in the main removes the problem
Has there been any changes between Qt 5.6 and Qt 5.14 that concerns TrueType fonts, or fonts in general ?I can upload the font file if you need me to
Regards
-
So now that you've a point where to start - why not creating a simple reproducer??
-
@Christian-Ehrlicher Because that is what i was doing of course
I was not able to reproduce it though
I verified and roboto is correctly used#include <QMainWindow> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; }; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } #include <QApplication> #include <QFontDatabase> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; QFontDatabase::addApplicationFont(":/police/roboto.ttf"); w.show(); return a.exec(); }
mainwindow.ui :
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>465</width> <height>262</height> </rect> </property> <property name="windowTitle"> <string>MainWindow</string> </property> <property name="styleSheet"> <string notr="true">QComboBox, QLabel, QAbstractSpinBox, QLineEdit, QTextBrowser, QRadioButton, QCheckBox { font-family: "Roboto Light"; font-size: 40px; qproperty-alignment: AlignCenter; color: black; qproperty-contextMenuPolicy: NoContextMenu; }</string> </property> <widget class="QWidget" name="centralwidget"> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QLabel" name="label"> <property name="text"> <string>Hello World</string> </property> </widget> </item> </layout> </widget> <widget class="QMenuBar" name="menubar"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>465</width> <height>25</height> </rect> </property> </widget> <widget class="QStatusBar" name="statusbar"/> </widget> <resources/> <connections/> </ui>
-
Hi, just guessing but do you get the same error if you add the font from a disk file instead of an embedded resource, say like:
... MainWindow w; QFontDatabase::addApplicationFont("roboto.ttf"); w.show(); ...
-
Silly idea: what if you load the font before creating your MainWindow object ?
Instinctively, I would setup all external resources like this one before creating objects that will use them.
-
@SGaist And we have a winner ! That was the issue, thank you :)
-
Hi,
I have also had the same problem as OP but my GUI is QML and platform is Android It has a problem when I move my application from Qt 5.13.2 to Qt 5.14.2.
So now I just strict with Qt 5.13.2 (Even I would like to use a new feature for app bundle ) but I just curious why no one has the problem with display the wrong text after the move to Qt 5.14.2.I try all method as OP and also load the font in QML and set the font to all display text but some text still displays wrong text i.e. under
Menu { title: "Languages" font: Fonts.fontDefault }
from above in GUI it's show "Languages " as below
-
-
@Pl45m4 Already try it work on Windows but not for android