一、原因
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)。