图片浏览器

来源:互联网 发布:淘宝基础版全套代码 编辑:程序博客网 时间:2024/05/29 13:11
/* widget.h*/#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QLabel>#include <QPushButton>#include <QMouseEvent>class Widget : public QWidget{    Q_OBJECTpublic:    Widget(QWidget *parent = 0);    ~Widget();public slots:    void lefebut();    void rightbut();    void openbut();    void showpic()    {        lab->setPixmap(QPixmap(files[len]));    }signals:    sendmesg();//发送信号protected:    void keyPressEvent(QKeyEvent *event); /* 键盘按键 */    void wheelEvent(QWheelEvent *event); /* 鼠标滚动 */    void mousePressEvent(QMouseEvent *event);private:    QLabel *lab;    QPushButton *btn_l, *btn_r,*btn_o;    int len;    QStringList files;};#endif // WIDGET_H/* widget.cpp*/#include "widget.h"#include <QVBoxLayout>#include <QHBoxLayout>#include <QFileDialog>   /* 文件对话框*/#include <QDebug>Widget::Widget(QWidget *parent)    : QWidget(parent){    setFixedSize(640, 480);    btn_l = new QPushButton("<-",this);    btn_o = new QPushButton("O",this);    btn_r = new QPushButton("->",this);    lab = new QLabel(this);     lab->setScaledContents(true);    QHBoxLayout *hbox = new QHBoxLayout;    hbox->addStretch();    hbox->addWidget(btn_l);    hbox->addWidget(btn_o);    hbox->addWidget(btn_r);    hbox->addStretch();    QVBoxLayout *vbox = new QVBoxLayout;    vbox->addWidget(lab);    vbox->addLayout(hbox);    setLayout(vbox);    connect(btn_o, SIGNAL(clicked()), this, SLOT(openbut()));    connect(btn_r, SIGNAL(clicked()), this, SLOT(rightbut()));    connect(btn_l, SIGNAL(clicked()), this, SLOT(lefebut()));    connect(this, SIGNAL(sendmesg()), this, SLOT(showpic()));}Widget::~Widget(){}void Widget::mousePressEvent(QMouseEvent *event){    if (1 == event->button())    {        if (0 == (len))        {            len = files.length() - 1;            lab->setPixmap(QPixmap(files[len]));        }        else        {            len--;            lab->setPixmap(QPixmap(files[len]));        }    }    else if (2 == event->button())    {        if ((files.length() - 1) == (len))        {            len = 0;            lab->setPixmap(QPixmap(files[len]));        }        else        {            len++;            lab->setPixmap(QPixmap(files[len]));        }    }    emit sendmesg();//发送信号}void Widget::keyPressEvent(QKeyEvent *event) /* 键盘按键 */{    if (Qt::Key_1 == event->key())    {        if (0 == (len))        {            len = files.length() - 1;            lab->setPixmap(QPixmap(files[len]));        }        else        {            len--;            lab->setPixmap(QPixmap(files[len]));        }    }    else if (Qt::Key_2 == event->key())    {        if ((files.length() - 1) == (len))        {            len = 0;            lab->setPixmap(QPixmap(files[len]));        }        else        {            len++;            lab->setPixmap(QPixmap(files[len]));        }    }    emit sendmesg();//发送信号}void Widget::wheelEvent(QWheelEvent *event) /* 鼠标滚动 */{   if (-120 == event->delta())   {       if (0 == (len))       {           len = files.length() - 1;           lab->setPixmap(QPixmap(files[len]));       }       else       {           len--;           lab->setPixmap(QPixmap(files[len]));       }   }   else if (120 == event->delta())   {       if ((files.length() - 1) == (len))       {           len = 0;           lab->setPixmap(QPixmap(files[len]));       }       else       {           len++;           lab->setPixmap(QPixmap(files[len]));       }   }   emit sendmesg();//发送信号}void Widget::lefebut(){    if (0 == (len))    {        len = files.length() - 1;        lab->setPixmap(QPixmap(files[len]));    }    else    {        len--;        lab->setPixmap(QPixmap(files[len]));    }}void Widget::rightbut(){    if ((files.length() - 1) == (len))    {        len = 0;        lab->setPixmap(QPixmap(files[len]));    }    else    {        len++;        lab->setPixmap(QPixmap(files[len]));    }}void Widget::openbut(){    files = QFileDialog::getOpenFileNames(this, "Open Image", ".","Images (*.png *.jpg *.xpm)");    len = 0;    qDebug() << "---1---" <<len;    lab->setScaledContents(true);    lab->setPixmap(QPixmap(files[len]));}/* main.cpp*/#include "widget.h"#include <QApplication>int main(int argc, char *argv[]){    QApplication a(argc, argv);    Widget w;    w.show();    return a.exec();}


 
原创粉丝点击