4.2.2图片下载功能
连接功能是下载服务器图片前必须进行的步骤,连接成功之后,就可以进行图片下载了。
图片下载功能流程图如图2-5所示:
是否连接成功 否 是 从服务器上下载图片 无法下载图片 自动加载到图形界面
图4.2.2 图片下载功能流程图
- 21 -
4.3 服务器功能模块
服务器的设计并没有使用QT编写界面,服务器端实现的功能有:
创建套接字 对套接字和IP地址进行验证 等待客户端进行连接 对客户端自动传送图片文件 图4.3 服务器模块流程图
- 22 -
5. 代码实现
5.1 客户端代码
5.1.1 QT图片浏览器功能函数的实现
向前翻的实现:
void ImageViewer::on_actionPrevious_triggered() {
if(currentFile == displayFiles.constBegin()) currentFile = displayFiles.constEnd(); currentFile--;
DisplayImage(dirCurrent->absoluteFilePath(*currentFile)); UpdateUI(); }
向后翻的实现:
void ImageViewer::on_actionNext_triggered() {
currentFile++;
if(currentFile == displayFiles.constEnd()) currentFile = displayFiles.constBegin();
DisplayImage(dirCurrent->absoluteFilePath(*currentFile)); UpdateUI(); }
显示时间更新:
void ImageViewer::displayTimerUpdate() {
currentFile++; // currentFile指向下一张图片
if(currentFile == displayFiles.constEnd())//边界检查 currentFile = displayFiles.constBegin(); //显示currentFile所指的图片
DisplayImage(dirCurrent->absoluteFilePath(*currentFile)); UpdateUI(); //更新图片显示区域
automaticTimer->start(displaySpace * 1000);//重启定时器 }
循环播放的实现:
void ImageViewer::on_actionAutomaticPlay_triggered() {
- 23 -
if(displayLoop == false) //如果不是循环播放模式 {
displayLoop = true; //设置为循环播放模式
automaticTimer->start(displaySpace * 1000);//启动定时器 //设置actionAutomaticPlay控件的图标为pause.png
actionAutomaticPlay->setIcon(QIcon(\ } else {
displayLoop = false;
automaticTimer->stop();//停止定时器
//设置actionAutomaticPlay控件的图标为play.png
actionAutomaticPlay->setIcon(QIcon(\ } }
- 24 -
相关推荐: