超簡單的數碼相框製作

2021-06-20 12:04:55 字數 3194 閱讀 4062

本人個人網域名稱**: (所有文章首發位址)

專案名稱:數碼相框(簡單)

專案分類:嵌入式應用開發

pc機系統環境:ubuntu10.04

pc機qt版本:qmake version 2.01a                 using qt version 4.5.3       qt creator 1.2.0 based on qt 4.5.2

開發板:loongson 1b

開發板系統環境:嵌入式linux

開發板qt版本:qmake version 2.01a               using qt version 4.5.3

數碼相框: digital photo frame

數碼相框是**和分享數碼**的專用裝置。

數碼相框是展示數碼**而非紙質**的相框。數碼攝影必然推動數碼相框的發展,因為全世界列印的數碼相片不到35%。數碼相框通常直接插上相機的儲存卡展示**,當然更多的數碼相框會提供內部儲存空間以接外接儲存卡功能。數碼相框就是乙個相框,不過它不再用放進相片的方式來展示,而是通過乙個液晶的螢幕顯示,它可以通過讀卡器的介面從sd卡獲取相片,並設定迴圈顯示的方式,比普通的相框更靈活多變,也給現在日益使用的數碼相片乙個新的展示空間。

目前實現功能:

在qtcreator下新建乙個qt4gui應用 專案  ---  digital_photo_frame

在qt中,qt提供給了4個影象類:qimage/qpixmap/qbitmap/qpicture。

//dangerous should not beused, cannot display earth.png, 

qpixmap pixmap;

pixmap.load(":/pics/*.png" );

label->setpixmap(pixmap );

//dangerous should not beused, cannot display earth.png,  

qpixmap pixmap;

pixmap.load(":/pics/*.png" );

qpainter painter(this);

painter.drawpixmap(0,0,pixmap);

而我則同時使用兩個類對顯示的就行了優化,即採用qimage優化尺寸,qpixmap快取繪圖的方式。

以下的**實現:

void digital_photo_frame::show_img(qstring filename,int imgw)

qpixmap _pixmap =qpixmap::fromimage(image.scaled(showwidth, showheight,qt::keepaspectratio));

ui->imglabel->setpixmap(_pixmap);

ui->imglabel->adjustsize();}}

void digital_photo_frame::on_open_file_triggered()

// 在標頭檔案宣告定時器

qtimer *player_timer;

//在定義cpp裡面的建構函式裡面建立定時器

digital_photo_frame::digital_photo_frame(qwidget *parent)

: qmainwindow(parent), ui(new ui::digital_photo_frame)

//與定時器判斷的函式

void digital_photo_frame::player_img()

else

}

void digital_photo_frame::player_img(qfileinfolist list,qstring path,int i,int imgw)

最終的功能函式:

void digital_photo_frame::on_actionplayer_triggered()

this->setmousetracking (true);
功能實現:

void digital_photo_frame::mousepressevent ( qmouseevent * e )//滑鼠單擊事件響應

else

}

**實現:

void digital_photo_frame::on_pbtn_next_clicked()//下一張

else

player_img(list,path,i,480);

}

void digital_photo_frame::on_pbtn_last_clicked()//上一張

else

player_img(list,path,i,480);

}

解決方法:

利用qt的plugins機制

解決過程:

在移植qt在開發板上時,編譯引數已開啟了對這些格式的支援(如何知道?檢視你的qt/e的安裝路徑,在路徑下有乙個plugins資料夾,plugins下有imageformats資料夾,該資料夾下若有以下幾個庫就對了(如下圖))

在pc的終端下執行以下兩條命令:

export ld_library_path=$qtdir/plugins/imageformats:$ld_library_path

export qt_plugin_path=$qtdir/plugins

在qt專案的pro檔案中增加qtplugin += qjpeg  qgif

把pc機上的外掛程式庫複製到開發板上並如同第二步一樣設定開發板的環境變數,然後就可以執行了。

end……

八數碼問題的超簡單STL版

問題描述 在3 3的棋盤上,擺有八個棋子,每個棋子上標有1至8的某一數字。棋盤中留有乙個空格,空格用0來表示。空格周圍的棋子可以移到空格中。要求解的問題是 給出一種初始布局 初始狀態 和目標布局123804765,找到一種最少步驟的移動方法,實現從初始布局到目標布局的轉變。輸入一行,9個數,表示方陣...

超簡單的Spring入門案例製作,快來看看吧!

1.構建方法 介面,實現類,測試方法 介面 package com.itheima.service public inte ce userservice 實現類 package com.itheima.service.imple import com.itheima.service.userserv...

超簡單的筆記

finally一定會在return之前執行,如果finally使用了return或者throw語句,將會使try catch中的return或者throw失效。final修飾的引用型變數,不能再指向別的東西,但是可以改變其中的內容 同步機制是為了共享資源以及執行緒通訊,可以利用synchronize...