工作中遇到的Qt的一些问题

面试被人问到工作中遇到过Qt的什么Bug,一时答不出来…深层的Bug确实没遇到过,记录一些简单的问题凑下数吧:

1. QImage加载图片时,如果后缀与实际格式匹配,就会加载失败,即使设置了autoDetect。解决办法是复制一下文件,去掉后缀现加载。

可见:QImage: auto detect format when loading image

bool QImage::load(const QString &fileName, const char *format = nullptr) Loads an image from the file with the given fileName. Returns true if the image was successfully loaded; otherwise invalidates the image and returns false. The loader attempts to read the image using the specified format, e.g., PNG or JPG. If format is not specified (which is the default), it is auto-detected based on the file’s suffix and header. For details, see {QImageReader::setAutoDetectImageFormat()}{QImageReader}.

2. 跨平台时,有时设置的样式不生效。解决办法是通过动态属性的方式设置样式。

 

一些使用问题而非Bug

1. Raw string串转QString,有非Ansi字符时,最好用QString::fromWCharArray(L””)的方式。直接赋值是有问题的,用QString::fromLocal8Bit的话又依赖QTextCodec::codecForLocale() 。因为源代码编码是UTF-8的,以为可以用QString::fromUtf8,结果也有问题(但Linux组的同事说又是可以的,太奇怪了)。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据