朋友聽說我大學做過windows軟件,讓我?guī)兔ψ鲆粋€拼接屏的查詢軟件雨女。這個軟件其實是普通的window程序,只有兩級頁面阳准,但是出于內(nèi)容多變氛堕,所以要做成可以配置,兩種模式野蝇。
- 拼接屏:5塊52寸最高分辨率1920的屏幕橫向拼接而成讼稚。
- 可配置:就是一級界面的按鈕可以增,刪绕沈、改锐想。改包括位置、圖標乍狐、大小赠摇、半徑、透明度澜躺,一級對應的二級頁面內(nèi)容蝉稳。
- 兩種模式:游客模式,一級頁面上的按鈕可以同時點擊掘鄙,二級頁面在對應的屏幕上顯示出來耘戚。講解模式:只有第一塊屏幕可以點擊,二級頁面以可選擇的特效出現(xiàn)操漠,包括常見的:百葉窗收津、淡入淡出饿这、擴展、gif動畫
問題解決方式:
- 分辨率方案:普通顯卡只支持一個擴展屏撞秋,少部分支持兩個擴展屏长捧,達不到需要的5個屏幕拼接。所以采用了支持AMD寬域技術的多分屏顯卡吻贿,解決分辨率的問題串结。顯示簡單,低數(shù)率任務還可以舅列。動作一快就會有延遲產(chǎn)生肌割。
- 采用.ini文件記錄配置信息,程序啟動時候讀取信息即可帐要。
- gif圖不支持半透明效果把敞,所以在美工制作gif的時候,將圖片導出為.png的圖片序列榨惠。由于分辨率大和QPixmap加載圖片過慢奋早,所以在一張張播放圖片的時候性能瓶頸在加載圖片上,所以需要預加載在內(nèi)存當中赠橙。
- 百葉窗效果和擴展效果耽装,利用QPixmap的copy();函數(shù),將圖片分割后慢慢顯示出來简烤。
void vxLabelItem::slot_timeOut( int val)
{
mCurrentImage = mDrawImage.copy(0, 0, val, imageHeight);
m_currentWidth = val;
qDebug()<<"val"<<val<<endl;
update();
}
- 重載paintEvent(QPaintEvent *event)事件剂邮,要主要不要在當中做耗時操作,比如加載圖片横侦,特別是大圖。
?
?