<font family> gets removed from .ui header files after upgrading Qt Creator from v5 to v6 ?
-
@Christian-Ehrlicher Sorry I meant 5.14.0 and 5.15.2.
-
@ChrisW67 These are the files generated after building. The lines are missing since they've been removed from the .ui file as well:
<widget class="QLabel" name="label_2"> <property name="font"> <font> <pointsize>36</pointsize> <bold>true</bold> </font> </property> </widget>
-
So this has nothing to do with Qt but with QtCreator because QtCreator creates/modifies the ui files - did you update QtCreator? What QtCreator version do you currently use?
-
@R-P-H Building the project will not modify the Designer blah.ui file: it is an input to
uic
, not an output (ui_blah.h). Only a human being opening and saving the *.ui file will modify the file: either with Designer directly or through Qt Creator. I guess you could directly edit blah.ui, or have some process that generates it; that would be entirely your own problem.For example, this blah.ui:
<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>Form</class> <widget class="QWidget" name="Form"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>640</width> <height>100</height> </rect> </property> <property name="windowTitle"> <string>Form</string> </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QLabel" name="label_2"> <property name="font"> <font> <family>Arial</family> <pointsize>36</pointsize> <weight>75</weight> <bold>true</bold> </font> </property> <property name="text"> <string>TextLabel</string> </property> </widget> </item> </layout> </widget> <resources/> <connections/> </ui>
Does this when built with a 5.12 and 5.15 version:
$ md5sum blah.ui 3f305f74aa3e61c8776bdcc205674c5f blah.ui $ qmake -v QMake version 3.1 Using Qt version 5.12.8 in /usr/lib/x86_64-linux-gnu $ uic blah.ui > ui_blah_5_12_8.h $ ~/Qt/5.15.0/gcc_64/bin/uic blah.ui > ui_blah_5_15_0.h $ ~/Qt/5.15.2/gcc_64/bin/uic blah.ui > ui_blah_5_15_2.h $ md5sum blah.ui # UNCHANGED 3f305f74aa3e61c8776bdcc205674c5f blah.ui $ diff ui_blah_5_12_8.h ui_blah_5_15_0.h # No difference on font definition 4c4 < ** Created by: Qt User Interface Compiler version 5.12.8 --- > ** Created by: Qt User Interface Compiler version 5.15.0 52,53c52,53 < Form->setWindowTitle(QApplication::translate("Form", "Form", nullptr)); < label_2->setText(QApplication::translate("Form", "TextLabel", nullptr)); --- > Form->setWindowTitle(QCoreApplication::translate("Form", "Form", nullptr)); > label_2->setText(QCoreApplication::translate("Form", "TextLabel", nullptr)); $ diff ui_blah_5_15_0.h ui_blah_5_15_2.h 4c4 < ** Created by: Qt User Interface Compiler version 5.15.0 --- > ** Created by: Qt User Interface Compiler version 5.15.2
The resulting code looks like this in all cases:
QFont font; font.setFamily(QString::fromUtf8("Arial")); font.setPointSize(36); font.setBold(true); font.setWeight(75); label_2->setFont(font);
-
@ChrisW67 Hi, I will demonstrate what it does below.
Here is a excerpt from a .ui file I have within a project before opening it with Qt Creator:
<widget class="QLabel" name="myLabel"> <property name="geometry"> <rect> <x>20</x> <y>130</y> <width>2171</width> <height>61</height> </rect> </property> <property name="font"> <font> <family>Arial</family> <pointsize>30</pointsize> </font> </property> <property name="styleSheet"> <string notr="true">color: rgb(255, 0, 0);</string> </property> <property name="text"> <string/> </property> </widget>
I now go ahead and open the project using Qt Creator:
After the project opens, here is the exact same excerpt from the same .ui file:
<widget class="QLabel" name="myLabel"> <property name="geometry"> <rect> <x>20</x> <y>130</y> <width>2171</width> <height>61</height> </rect> </property> <property name="font"> <font> <pointsize>30</pointsize> </font> </property> <property name="styleSheet"> <string notr="true">color: rgb(255, 0, 0);</string> </property> <property name="text"> <string/> </property> </widget>
As you can see, somehow the <font family> property has been removed without me modifying anything. All I did was open the project using a newer version of Qt/Qt Creator.
-
@Christian-Ehrlicher said in font.setfamily() gets removed from ui header files after upgrading Qt ?:
So this has nothing to do with Qt but with QtCreator because QtCreator creates/modifies the ui files - did you update QtCreator? What QtCreator version do you currently use?
Yes at the same time I upgraded Qt I also upgraded Qt Creator from major version 5 to major version 6. I am currently using Qt Creator v6.0.0.
-
Again:
So this has nothing to do with Qt but with QtCreator because QtCreator creates/modifies the ui files - did you update QtCreator? What QtCreator version do you currently use?
-
@Christian-Ehrlicher said in font.setfamily() gets removed from ui header files after upgrading Qt ?:
Again:
So this has nothing to do with Qt but with QtCreator because QtCreator creates/modifies the ui files - did you update QtCreator? What QtCreator version do you currently use?
Yes, I see and agree. Still doesn't seem to explain why it would remove all my font family properties ?
-
Christian Ehrlicher Lifetime Qt Championreplied to Christian Ehrlicher on last edited by Christian Ehrlicher
@Christian-Ehrlicher said in <font family> gets removed from .ui header files after upgrading Qt Creator from v5 to v6 ?:
What QtCreator version do you currently use?
for the third time...
-
@Christian-Ehrlicher said in <font family> gets removed from .ui header files after upgrading Qt Creator from v5 to v6 ?:
@Christian-Ehrlicher said in <font family> gets removed from .ui header files after upgrading Qt Creator from v5 to v6 ?:
What QtCreator version do you currently use?
for the third time...
@R-P-H said in <font family> gets removed from .ui header files after upgrading Qt Creator from v5 to v6 ?:
@Christian-Ehrlicher said in font.setfamily() gets removed from ui header files after upgrading Qt ?:
So this has nothing to do with Qt but with QtCreator because QtCreator creates/modifies the ui files - did you update QtCreator? What QtCreator version do you currently use?
Yes at the same time I upgraded Qt I also upgraded Qt Creator from major version 5 to major version 6. I am currently using Qt Creator v6.0.0.
-
Ok, can reproduce it with QtCreator 6.0.3. Happens only when the select font is the default font (Arial on Windows, Noto Sans on Linux in my case). Does not happen with Qt-Designer 5.15.x and also not with other attributes.
-
Fixed In Qt6.2.3 and Qt6.3 so I would guess when a new QtCreator is build with Qt6.2.3 it's fixed there too. See https://bugreports.qt.io/browse/QTBUG-98916
-
@Christian-Ehrlicher said in <font family> gets removed from .ui header files after upgrading Qt Creator from v5 to v6 ?:
Fixed In Qt6.2.3 and Qt6.3 so I would guess when a new QtCreator is build with Qt6.2.3 it's fixed there too. See https://bugreports.qt.io/browse/QTBUG-98916
So just to wait ?
-
@R-P-H said in <font family> gets removed from .ui header files after upgrading Qt Creator from v5 to v6 ?:
So just to wait ?
You can also build QtCreator by your own if you want... if it's worth the trouble.
-
Hello,
This bug is causing me a lot of grief. Just upgraded to QtCreator 6.0.2 and now I lose all my fonts whenever I use QtCreator to edit my .ui files.
Is there a date when this bug is expected to be finished. I am trying to remain sane as I use QtCreator but in the end I use VSCode for code editing and until now I used QtCreator to edit .ui files (and now that is broken).
Thank you,
Michael Uman
Sr Firmware Engineer
Cana Technlogy -
@muman said in <font family> gets removed from .ui header files after upgrading Qt Creator from v5 to v6 ?:
Is there a date when this bug is expected to be finished
As I already said - when a new QtCreator version is out, the bug will be fixed. You can also downgrade to an older version.
-
@ChrisW67 Really so hard the read the bug report and what I wrote? It is fixed in 6.2.3 and 6.3.x ...