首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python高级进阶教程022期 pyqt5 qtimer实现图片轮播

1.知识回顾:

  • 1.使用label控件去绑定
  • 2.使用label去实现链接
  • 3.掌握简单的html

本节知识视频教程

以下开始文字讲解:

2.案例

案例:图片轮播

1.载入图片

2.载入并配置时钟控件

3.时钟控件介绍

本次的时钟控件,我们使用Qtimer这个类来实现。

这个时钟控件的好处是,我们可以自定义槽方法。

使用格式:

  • 1.载入timer

timer1=QTimer(self)

  • 2.掌握超时信号timeout

这里的超时的意思是:超时后,要执行什么代码。在timer中体现为去执行什么槽函数。

timer1.timeout.connect(self.timer_TimeOut)

  • 3.启动时钟控件

使用控件的start方法。timer1.start(1000) 注意,这里的时间单位是毫秒,代表超时的时间。

4.图片处理

  • 1.使用的是qpixmap类
  • 2.载入图片前要把图片名称进行有规律的处理
  • 3.每次修改完成图片后,要重新载入label控件
  • 4.图片的逻辑处理:处理不要载入没有文件的图片

5.总结强调

1.掌握时钟控件qtimer的使用

2.掌握图片载入的逻辑处理

6.本节知识源代码

代码语言:javascript
复制
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QLabel
from PyQt5.QtCore import QTimer
from PyQt5.QtGui import QPixmap

class MyClass(QWidget):
    def __init__(self):
        super().__init__()
        self.n=1
        self.initUI()

    def initUI(self):
        self.setWindowTitle("刘金玉编程")
        self.resize(400,300)

        self.pm=QPixmap("./img/a" +str(self.n)+".jpg")
        self.lblpic=QLabel(self)
        self.lblpic.setPixmap(self.pm)
        self.lblpic.resize(200,200)
        self.lblpic.move(self.width()/2-self.lblpic.width()/2,50)
        self.lblpic.setScaledContents(True)

        lb12=QLabel(self)
        lb12.setText("图片轮播")
        lb12.move(180,20)

        timer1=QTimer(self)
        timer1.timeout.connect(self.timer_TimeOut)
        timer1.start(1000)
        self.show()

    def timer_TimeOut(self):
        self.n+=1
        if self.n>4:
            self.n=1
        self.pm = QPixmap("./img/a" + str(self.n) + ".jpg")
        self.lblpic.setPixmap(self.pm)

if __name__=="__main__":
    app=QApplication(sys.argv)

    mc=MyClass()
    sys.exit(app.exec_())
举报
领券