[Gambas-user] Fonts: different answers from libraries
Gianluigi
gradobag at gradobag.it
Wed Oct 18 11:15:52 CEST 2023
Il 18/10/23 06:50, BB ha scritto:
>
> On 18/10/23 1:51 pm, T Lee Davidson wrote:
>> On 10/17/23 23:16, T Lee Davidson wrote:
>>> On 10/17/23 16:27, Gianluigi wrote:
>>>> The font is installed but I get information only with the GTK libraries.
>>>>
>>>> Anyone know the reason?
>>>> Code(*)
>>>> System(**)
>>>>
>>>> Regards
>>>> Gianluigi
>>>>
>>>> (*)
>>>> Public Sub Form_Open()
>>>>
>>>> If Fonts.Exist("D050000L") Then
>>>> Message.Info("The D050000L font is installed")
>>>> Else
>>>> Message.Warning("You have to install the D050000L font")
>>>> Endif
>>>> Me.Close
>>>>
>>>> End
>>>>
>>>> (**)
>>>> [System]
>>>> Gambas=3.18.90 d26f534 (master)
>>>
>>> I do not know the reason, but I can confirm that the list of fonts
>>> enumerated by Fonts is indeed different when using GTK3 versus Qt5;
>>> not only in number (141 versus 285, respectively) but also in name.
>>
>> I probably should have mentioned:
>> 1) `fc-list : family` on the command-line yields 237, and
>> 2) this is with v3.18.4 (stable)
>>
> In short, I believe the answer lies in how these three things "know"
> about fonts. QT5 has it's own internal list of what it thinks are
> names of installed fonts. fc (and fc-list) uses fontconfig files
> installed here there and everywhere by font packages and whatever GTK
> does it's probably a different way to the above. An important thing to
> know is that these three all have different ways of coming up with a
> font "name". I don't know for sure but Gialuigi's could be related to
> the fact that here D050000L is called "D050000L [URW]".
>
> b
>
> p.s. I guess that no matter how hard you try to be desktop agnostic,
> 4th parties (i.e. font providers) can stuff you up.
>
>
> ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
Hi guys,
thank you very much for your help.
I found this page: https://www.kdab.com/the-qt-less-traveled/ it seems
like a qt bug.
With this code I saw how QT (and GTK) call the font:
Public Sub Form_Open()
Dim fontName As String
Print "QT"
Print "==================="
For Each fontName In Fonts
Print fontName
Next
End
And this code seems to solve:
Public Sub Form_Open()
If Fonts.Exist("D050000L") Or If Fonts.Exist("D050000L [urw]") Or If
Fonts.Exist("D050000L [URW ]") Then
Message.Info("The D050000L font is installed")
Else
Message.Warning("You have to install the D050000L font")
Endif
Me.Close
End
Many thanks again, regards
Gianluigi
More information about the User
mailing list