Font families are truncated
John F Sturtz
john at sturtz.org
Fri Nov 15 16:33:26 GMT 2024
I'm probably in over my head here. Don't know how to check whether
(Py)Qt is compiled with freetype.
Following the instructions at the bottom of the page, I did put the
qt.conf file shown in the directory where python.exe resides [probably
wouldn't ultimately be the optimal location for it, but that is what
QCoreApplication.applicationDirPath() returns, and it seemed the easiest
thing to try first].
That didn't appear to change the behavior ...
At one point awhile back, I did try to make a push to migrate my code to
Qt6, but there was one piece of code I never could get to work
properly. So I abandoned the effort. :-<
Thanks again!
/John
> Charles <mailto:peacech at gmail.com>
> Thursday, November 14, 2024 11:27 PM
> If your Qt is compiled with freetype, you can try using it instead, see
>
> https://doc.qt.io/qt-5/qt-conf.html (bottom of page)
> https://github.com/qt/qtbase/blob/v5.15.14-lts-lgpl/src/plugins/platforms/windows/qwindowsintegration.cpp#L189
>
> John F Sturtz <mailto:john at sturtz.org>
> Thursday, November 14, 2024 11:12 PM
> Alas. Still working in (Py)Qt5. I'm probably stuck with it then.
>
> Thanks.
>
> /John
>
>
> Charles <mailto:peacech at gmail.com>
> Thursday, November 14, 2024 10:35 PM
> That is the limitation of using GDI font engine. If you are using
> Qt>=6.7, trying using -platform windows:fontengine=directwrite command
> line parameter.
>
> John F Sturtz <mailto:john at sturtz.org>
> Thursday, November 14, 2024 9:12 PM
> Greetings again!
>
> This is perhaps a bit of an esoteric question.
>
> I am using QFontDatabase and QFont to query and manipulate some
> display fonts. On my system, there are some font family/variant
> combinations that have pretty long names. Several in the Bahnschrift
> family, for instance -- Bahnschrift SemiBold SemiCondensed,
> Bahnschrift SemiLight SemiCondensed, and so on.
>
> The Windows font settings app lists these with their full names.
> Also, if I query the .ttf file directly:
>
> path = r'C:\Windows\fonts\bahnschrift.ttf'
> font = ttLib.TTFont(path)
> for instance in font["fvar"].instances:
> style = font["name"].getName(instance.subfamilyNameID, 3, 1,
> 0x409)
> print(style)
>
> I get the full names.
>
> However, if I get a list of font families using
> QFontDatabase().families(), the names that are returned are truncated
> to (oddly) 31 characters. So, for example, Bahnschrift SemiBold
> SemiConden, Bahnschrift SemiLight SemiConde, and the like.
>
> And indeed, if I want to create a QFont object for these, I seem to
> need to use the truncated names:
>
> QFont('Bahnschrift SemiBold SemiConden') # These work
> QFont('Bahnschrift SemiLight SemiConde')
>
> QFont('Bahnschrift SemiBold SemiCondensed') # These do not
> QFont('Bahnschrift SemiLight SemiCondensed')
>
> Not a huge deal, but it's a little difficult, because the names PyQt
> seems to recognize aren't the ones I'd want to present to the user
> (nor ones I would have thought to use, but for the fact that
> QFontDatabase().families() gave them to me that way). Any thoughts as
> to why?
>
> Thanks again, as always!
>
> /John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20241115/51d6a14f/attachment.htm>
More information about the PyQt
mailing list