零、小序
Python是一个语法简单的语言,Python的框架却没有那么简单,真想学好Python来做项目并不是一件简单的事情,这里在windows下用PyCharm开发,使用PyQt5来实现了一个小小的图片播放器。
一、图片播放器介绍
1、功能介绍
使用PyQt5这个强大的库来实现界面和图片浏览功能,界面使用QtDesigner来设计并通过PyUIC把Qt设计师绘制的界面转化为Python代码,界面布局主要有QMainWindow和QLabel这另两个空间来实现。该工具支持单张图片的打开和打开文件夹两种功能,图片显示使用QLabel+QPixmap来显示,界面的周边使用QLabel增加了一些动态文字的显示功能。
2、用到的技术
主要使用到PyQt5的信号和槽处理机制、QTimer定时器的使用、Qt设计师的使用、QLabel的使用、QPixmap的使用、QFileDialog打开文件和文件夹的使用等技术,详细使用情况请看代码。Qt设计师的使用可以参考我之前写的一篇文章:https://blog.csdn.net/toby54king/article/details/101383374
3、图片播放效果
下图是操作和效果,为了减小动态图占用空间,录制的动态图做了一些减帧处理,效果看着可能有些不是很好。
二、主要代码
1、Python代码
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ScanPicture.ui'
#
# Created by: PyQt5 UI code generator 5.13.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import QTimer
import sys,os
class Ui_MainWindow(object):
def __init__(self):
# 存储图片vector
self.vector = []
self.posTop = 0
self.posBottom = 0
self.posLeft = 0
self.posRight = 0
self.index = 0
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(891, 685)
font = QtGui.QFont()
font.setPointSize(9)
MainWindow.setFont(font)
self.centralwidget = QtWidgets.QWidget(MainWindow)
font = QtGui.QFont()
font.setPointSize(15)
font.setBold(False)
font.setWeight(50)
self.centralwidget.setFont(font)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setSpacing(0)
self.gridLayout.setObjectName("gridLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.labelLeft = QtWidgets.QLabel(self.centralwidget)
self.labelLeft.setMinimumSize(QtCore.QSize(25, 0))
self.labelLeft.setMaximumSize(QtCore.QSize(25, 16777215