朋友听说我大学做过windows软件,让我帮忙做一个拼接屏的查询软件。这个软件其实是普通的window程序,只有两级页面,但是出于内容多变,所以要做成可以配置,两种模式。
- 拼接屏:5块52寸最高分辨率1920的屏幕横向拼接而成。
- 可配置:就是一级界面的按钮可以增,删、改。改包括位置、图标、大小、半径、透明度,一级对应的二级页面内容。
- 两种模式:游客模式,一级页面上的按钮可以同时点击,二级页面在对应的屏幕上显示出来。讲解模式:只有第一块屏幕可以点击,二级页面以可选择的特效出现,包括常见的:百叶窗、淡入淡出、扩展、gif动画
问题解决方式:
- 分辨率方案:普通显卡只支持一个扩展屏,少部分支持两个扩展屏,达不到需要的5个屏幕拼接。所以采用了支持AMD宽域技术的多分屏显卡,解决分辨率的问题。显示简单,低数率任务还可以。动作一快就会有延迟产生。
- 采用.ini文件记录配置信息,程序启动时候读取信息即可。
- gif图不支持半透明效果,所以在美工制作gif的时候,将图片导出为.png的图片序列。由于分辨率大和QPixmap加载图片过慢,所以在一张张播放图片的时候性能瓶颈在加载图片上,所以需要预加载在内存当中。
- 百叶窗效果和扩展效果,利用QPixmap的copy();函数,将图片分割后慢慢显示出来。
void vxLabelItem::slot_timeOut( int val)
{
mCurrentImage = mDrawImage.copy(0, 0, val, imageHeight);
m_currentWidth = val;
qDebug()<<"val"<<val<<endl;
update();
}
- 重载paintEvent(QPaintEvent *event)事件,要主要不要在当中做耗时操作,比如加载图片,特别是大图。
�
�