>>主要功能:

    (1)图片切换浏览,上一张/下一张

    (2)图片放大、缩小。包括两种机制:鼠标滚轮和按钮放大/缩小。

    (3)图片自动循环播放,间隔2s。点击播放后,其他操作均无效,直至点击暂停

    (4)图片顺时钟旋转,每次90度。可在放大/缩小状态下旋转,或者相反。

    (5)在图片被放大/缩小/旋转后,点击还原或者切换图片时,自动恢复为默认大小。

 >>最终效果:

(1)点击播放按钮:

Ubuntu上Qt之简单图片浏览器

(2)暂停后,点击下一张:

Ubuntu上Qt之简单图片浏览器

(3)点击放大(或鼠标滚轮往前滚动):

Ubuntu上Qt之简单图片浏览器

(4)点击还原:

Ubuntu上Qt之简单图片浏览器

(5)点击缩小(或鼠标滚轮往后滑动):

Ubuntu上Qt之简单图片浏览器

(6)点击上一张:

Ubuntu上Qt之简单图片浏览器

(7)点击旋转:

Ubuntu上Qt之简单图片浏览器

(8)点击缩小(或鼠标滚轮往后):

Ubuntu上Qt之简单图片浏览器

(9)点击还原:

Ubuntu上Qt之简单图片浏览器

 

>>添加程序:

  新建Gui工程,名为MyPictureView,类名MyPictureView,基类选择QWidget。

mypictureview.h

#ifndef MYPICTUREVIEW_H
#define MYPICTUREVIEW_H

#include <QWidget>
#include <QVector>
#include <QPixmap>
#include <QTimer>
#include <QFileDialog>
#include <QString>
#include <QLabel>
#include <QWheelEvent>


namespace Ui {
class MyPictureView;
}

class MyPictureView : public QWidget
{
    Q_OBJECT

public:
    MyPictureView(QVector<QPixmap *> &pictures);

    ~MyPictureView();

private slots:
    void on_btn_prev_clicked();

    void on_btn_spin_clicked();

    void on_btn_play_stop_clicked();

    void on_btn_orig_clicked();

    void on_btn_next_clicked();

    void on_btn_big_clicked();

    void on_btn_smal_clicked();

    void wheelEvent(QWheelEvent * event);

    void pic_showloop();

private:
    Ui::MyPictureView *ui;
    QVector<QPixmap *>  &pictures_;
    QTimer *timer;
    QPixmap pix;
    QLabel *label;

    void pic_show1();
    void pic_show2();

    bool isPlaying;
    float scale;
    int size;
    int currentIndex;
    int imageAngle;
};

#endif // MYPICTUREVIEW_H
mypictureview.h

相关文章:

  • 2022-12-23
  • 2022-01-01
  • 2022-12-23
  • 2023-03-16
  • 2022-12-23
  • 2021-12-17
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-05
  • 2022-12-23
  • 2022-12-23
  • 2023-03-21
  • 2022-01-26
  • 2021-06-23
相关资源
相似解决方案