• 3937阅读
  • 1回复

[提问]新手提问 关于图片浏览的小程序 [复制链接]

上一主题 下一主题
离线cctom25
 
只看楼主 正序阅读 楼主  发表于: 2012-03-20
大家好 新人又来向各位大大提问了  还是关于毕设 这次是一个图片浏览的小问题
实训时期做智能家居 自己负责图片浏览的模块 所以毕设就接着用了  结果出现了一点小问题 以下为程序
文件
#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();
                    }
}
一进入这个页面 就会停止响应退出  怀疑是死循环了?(上次的问题)  用调试发现是红线的问题  但是跟实训的程序语句是一模一样的 不知道原因 谢谢各位!
离线cctom25
只看该作者 1楼 发表于: 2012-03-21
自己顶下。。
快速回复
限100 字节
 
上一个 下一个