6410的display controller在处理24bpp时,是需要按照32bit填充数据的,但是qt在24bpp图形界面时,只有24bit的数据,所以24 / 32 = 3 / 4,因此,只有3/4的屏幕有显示,而且显示内容乱七八糟的
可以修改QT的源码,让24bpp时也有32bit的数据,4.6.3版本,src/gui/embedded/qscreen_qws.cpp文件:
1)修改界面填充方式,函数 blit_qrgb888()中,
case QImage::Format_RGB888:
blit_template<qrgb888, qrgb888>(screen, image, topLeft, region);
修改为:
blit_template<quint32, qrgb888>(screen, image, topLeft, region);
2)修改底色填充方式,函数 qt_solidFill_setup()中,
case 24:
screen->d_ptr->solidFill = solidFill_template<qrgb888>;
修改为:
screen->d_ptr->solidFill = solidFill_template<quint32>;
重新编译一次QT就可以了。
其他的QT版本,应该类似