本文实例为大家分享了QT实现图片轮播的具体代码,供大家参考,具体内容如下
UI设计
一个Qlabel控件,一个pushButton 键
废话不多说直接怼代码
.h文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#ifndef IMAGES_H #define IMAGES_H #include <QtWidgets/QMainWindow> #include "ui_images.h" #include <Qlabel> #include <qpushbutton.h> #include <qpixmap.h> #include <qstring.h> #include <qtimer.h> class images : public QMainWindow { Q_OBJECT public : images(QWidget *parent=0); ~images(); private : Ui::imagesClass ui; QTimer *qTimer; int imgNumber; private slots: //显示图片 void showPictureSlot(); }; #endif // IMAGES_H |
.cpp文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#include "images.h" #pragma execution_character_set("utf-8") images::images(QWidget *parent) : QMainWindow(parent), imgNumber(0) { ui.setupUi( this ); //修改标题 this ->setWindowTitle( "QLabel的显示图片程序:" ); //给label设置新的文本 ui.picture_label->setText( "未显示图片" ); //将label框的内容位于中间. ui.picture_label->setAlignment(Qt::AlignCenter | Qt::AlignHCenter); //设置label框自动填充 //ui.picture_label->setScaledContents(true); //连接信号 与 槽 connect(ui.pushButton, SIGNAL(clicked()), this , SLOT(showPictureSlot())); ui.picture_label->setScaledContents( true ); qTimer = new QTimer(); connect( this ->qTimer, SIGNAL(timeout()), this , SLOT(showPictureSlot())); qTimer->start(3000); } images::~images() { delete qTimer; } //显示图片 void images::showPictureSlot(){ ++imgNumber; //图片路径(绝对路径拼接) QString path = ":/File/Resources/" + QString::number(imgNumber) + ".png" ; QPixmap pixmap(path); pixmap.scaled(ui.picture_label->size(), Qt::KeepAspectRatio); ui.picture_label->setPixmap(pixmap); if (3 == imgNumber) { imgNumber = 0; } } |
这样简单的图片轮播在Qlabel上就 实现了.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_38396292/article/details/83027300