Qt: DirectWrite: CreateFontFaceFromHDC() failed

一、原因

1、可能是因为字符串中包含了特殊字符,比如'\u0001'等。在keyPressEvent中,如果按ctrl+普通的ascii字符,比如ctrl+s,event的text()方法就会返回特殊字符。

2、可能是因为Font的初始化有问题(参考https://blog.csdn.net/xumingyifrend/article/details/103670851)。

3、其他

二、解决方法

1、可以将ascii值<32并且不是'\n'或者'\t‘的字符给过滤掉。

2、使用较新版本的Qt,比如5.13或者5.14(参考https://bugreports.qt.io/browse/QTBUG-57180)。


版权声明:本文为NONElgh原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。