>>主要功能:
(1)图片切换浏览,上一张/下一张。
(2)图片放大、缩小。包括两种机制:鼠标滚轮和按钮放大/缩小。
(3)图片自动循环播放,间隔2s。点击播放后,其他操作均无效,直至点击暂停。
(4)图片顺时钟旋转,每次90度。可在放大/缩小状态下旋转,或者相反。
(5)在图片被放大/缩小/旋转后,点击还原或者切换图片时,自动恢复为默认大小。
>>最终效果:
(1)点击播放按钮:
(2)暂停后,点击下一张:
(3)点击放大(或鼠标滚轮往前滚动):
(4)点击还原:
(5)点击缩小(或鼠标滚轮往后滑动):
(6)点击上一张:
(7)点击旋转:
(8)点击缩小(或鼠标滚轮往后):
(9)点击还原:
>>添加程序:
新建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