大家好 新人又来向各位大大提问了 还是关于毕设 这次是一个图片浏览的小问题
实训时期做智能家居 自己负责图片浏览的模块 所以毕设就接着用了 结果出现了一点小问题 以下为程序
头文件:
#ifndef PICTURE_H
#define PICTURE_H
#include <QWidget>
#include <QDir>
#include <QPixmap>
namespace Ui {
class picture;
}
class picture : public QWidget
{
Q_OBJECT
public:
explicit picture(QWidget *parent = 0);
~picture();
private slots:
void on_pushButton_return_clicked();
void on_pushButton_next_clicked();
void on_pushButton_previous_clicked();
private:
Ui::picture *ui;
int index;
QDir imageDir;
QStringList imageList;
void showPicture();
void selectDir();
void count();
};
#endif // PICTURE_H
源文件:
#include "picture.h"
#include "ui_picture.h"
#include <QDir>
#include <QDebug>
#include <QPixmap>
#include <QMessageBox>
picture::picture(QWidget *parent) :
QWidget(parent),
ui(new Ui::picture)
{
setWindowFlags(Qt::FramelessWindowHint);
this->move(0,0);
//file.open(QFile::ReadOnly);
//QTextStream filetext(&file);
//QString stylesheet = filetext.readAll();
selectDir();
showPicture();
ui->setupUi(this);
}
picture::~picture()
{
delete ui;
}
void picture::selectDir()
{
index=0;
QString dir= "photos/";
if(dir.isEmpty())
return;
imageDir.setPath(dir);
QStringList filter;
filter <<"*.jpg" << "*.bmp" << "*.jpeg" << "*.png";
imageList = imageDir.entryList ( filter,QDir::Files);
int count=imageList.count();
QString str=imageList.at(index);
qDebug()<<str;
if(count>0);
showPicture();
}
void picture::showPicture()
{
ui->label->setPixmap(imageDir.absolutePath() + QDir::separator()+ imageList.at(index)); QString str= imageDir.absolutePath() + QDir::separator() + imageList.at(index);
qDebug()<<"图片路径:"<<str;//图片路径
QString str1=imageList.at(index);
qDebug()<<"图片名称:"<<str1;//图片名称
}
void picture::on_pushButton_return_clicked()
{
this->close();
}
void picture::on_pushButton_previous_clicked()
{
index--;
if
(index<0)
{
QMessageBox::information(this,tr("警告"),tr("这是第一张!"));
index++;
showPicture();
}
else;
{
showPicture();
}
}
void picture::on_pushButton_next_clicked()
{
index++;
if
(index>=imageList.size())
{
QMessageBox::information(this,tr("警告"),tr("这是最后一张!"));//
index--;
showPicture();
}
else;
{
showPicture();
}
}
一进入这个页面 就会停止响应退出 怀疑是死循环了?(上次的问题) 用调试发现是红线的问题 但是跟实训的程序语句是一模一样的 不知道原因 谢谢各位!