????????????

import sys

import os

import utils

from PyQt4 import QtGui,QtCore

class SlideShowPics(QtGui.QMainWindow):

""" SlideShowPics class defines the methods for UI and

working logic

"""

def __init__(self, imgLst, parent=None):

super(SlideShowPics, self).__init__(parent)

# self._path = path

self._imageCache = []

self._imagesInList = imgLst

self._pause = False

self._count = 0

self.animFlag = True

self.updateTimer = QtCore.QTimer()

self.connect(self.updateTimer, QtCore.SIGNAL("timeout()"), self.nextImage)

self.prepairWindow()

self.nextImage()

def prepairWindow(self):

# Centre UI

screen = QtGui.QDesktopWidget().screenGeometry(self)

size = self.geometry()

self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2)

self.setStyleSheet("QWidget{}")

self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)

self.buildUi()

self.showFullScreen()

self.playPause()

def buildUi(self):

self.label = QtGui.QLabel()

self.label.setAlignment(QtCore.Qt.AlignCenter)

self.setCentralWidget(self.label)

def nextImage(self):

""" switch to next image or previous image

"""

if self._imagesInList:

if self._count == len(self._imagesInList):

self._count = 0

self.showImageByPath(

self._imagesInList[self._count])

if self.animFlag:

self._count += 1

else:

self._count -= 1

def showImageByPath(self, path):

if path:

image = QtGui.QImage(path)

pp = QtGui.QPixmap.fromImage(image)

self.label.setPixmap(pp.scaled(

self.label.size(),

QtCore.Qt.KeepAspectRatio,

QtCore.Qt.SmoothTransformation))

def playPause(self):

if not self._pause:

self._pause = True

self.updateTimer.start(2500)

return self._pause

else:

self._pause = False

self.updateTimer.stop()

def keyPressEvent(self, keyevent):

""" Capture key to exit, next image, previous image,

on Escape , Key Right and key left respectively.

"""

event = keyevent.key()

if event == QtCore.Qt.Key_Escape:

self.close()

if event == QtCore.Qt.Key_Left:

self.animFlag = False

self.nextImage()

if event == QtCore.Qt.Key_Right:

self.animFlag = True

self.nextImage()

if event == 32:

self._pause = self.playPause()

def main(paths):

if isinstance(paths, list):

imgLst = utils.imageFilePaths(paths)

elif isinstance(paths, str):

imgLst =  utils.imageFilePaths([paths])

else:

print " You can either enter a list of paths or single path"

app = QtGui.QApplication(sys.argv)

if imgLst:

window =  SlideShowPics(imgLst)

window.show()

window.raise_()

app.exec_()

else:

msgBox = QtGui.QMessageBox()

msgBox.setText("No Image found in any of the paths below\n\n%s" % paths)

msgBox.setStandardButtons(msgBox.Cancel | msgBox.Open);

if msgBox.exec_() == msgBox.Open:

main(str(QtGui.QFileDialog.getExistingDirectory(None,

"Select Directory to SlideShow",

os.getcwd())))

if __name__ == ‘__main__‘:

curntPaths = os.getcwd()

if len(sys.argv) > 1:

curntPaths = sys.argv[1:]

main(curntPaths)

时间: 2024-08-08 20:36:49

????????????的相关文章

为何淘宝新品标签两三天就没了?为什么自己的宝贝就是一直没有新品标签呢?

最近碰到有些人问为何新品标签两三天就没了?为何自己的产品就是一直没有新品标签呢?之类的问题,这里我来讲解下.  首先是,对于新品标签两三天就没了的问题相信绝对多数卖家开始都会碰到过,主要因为你是做别人的代理,或自己的产品,然后网上找来的图片,因为你的产品图片烂大街,淘宝到处都是,好的可能发布了一两个月,不好的,可能几年前人家都开始在用.        那么淘宝的新品又是如何定义的呢?淘宝的新品就是定义为最新出的产品,所以你那样的产品淘宝开始没检测到之前的图片时会偶然给您送上新品标签,一旦检测到原

为什么原生 JavaScript 开发越来越多受欢迎?是否应该跟风用原生JavaScript代替 jQuery等库?

本文标签:  jQuery的作用 原生JavaScript优势 jQuery官网 jQuery处理DOM和跨浏览器 JavaScript新特性 互联网杂谈 随着 JavaScript 本身的完善,越来越多的人开始喜欢使用原生 JavaScript 开发代替各种库,其中不少人发出了用原生 JavaScript 代替 jQuery 的声音.这并不是什么坏事,但也不见得就是好事.如果你真的想把 jQuery从前端依赖库中移除掉,我建议你慎重考虑. 首先 jQuery 是一个第三方库.库存在的价值之一在

jsp页面中某个src,如某个iframe的src,应该填写什么?可以是html、jsp、servlet、action吗?是如何加载的?

jsp页面中某个src,如某个iframe的src,应该填写什么?可以是html.jsp.servlet.action吗?是如何加载的? 如有个test工程,其某个jsp中有个iframe,代码如下: <div class="tc1" style="padding-left: 10px">      <iframe src="${contextpath}/main/getIframeJsp" width="220&qu

电脑如何进入BIOS?在BIOS模式下USB的启动热键是什么?

组装机主板 品牌笔记本 品牌台式机 主板品牌 启动按键 笔记本品牌 启动按键 台式机品牌 启动按键 华硕主板 F8 联想笔记本 F12 联想台式机 F12 技嘉主板 F12 宏基笔记本 F12 惠普台式机 F12 微星主板 F11 华硕笔记本 ESC 宏基台式机 F12 映泰主板 F9 惠普笔记本 F9 戴尔台式机 ESC 梅捷主板 ESC或F12 联想Thinkpad F12 神舟台式机 F12 七彩虹主板 ESC或F11 戴尔笔记本 F12 华硕台式机 F8 华擎主板 F11 神舟笔记本 F

Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么?

quote:Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么? (IT公司面试手册,可以多看看) spring 框架中核心组件有三个:Core.Context 和 Beans.其中最核心的组件就是Beans, Spring提供的最核心的功能就是Bean Factory. Spring 解决了的最核心的问题就是把对象之间的依赖关系转为用配置文件来管理,也就是Spring的依赖注入机制.这个注入机制是在Ioc 容器中进行管理的. Bean 组件是在 Spring 的 org.

ARMv7处理器各个模式之间是如何切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?

1.ARM处理器各个模式之间是如何切换的? 答:除用户模式外的其他6种模式称为特权模式,这些模式中,程序可以访问所有系统资源,也可以任意进行处理器模式的切换.处理器模式可以通过软件控制进行切换(直接设置CPSR寄存器的后五位就可以在6种特权模式之间互相切换),也可以通过外部中断或异常处理过程进行切换(例如,在USR模式下,发生中断后切换到IRQ模式). 2.ARM各个模式之间切换时,上下文的保存哪些是硬件在做?哪些是操作系统在做? 答:CPU做的: (1)把返回地址保存到相应模式的lr寄存器中,

为什么不建议将 font-size 设置为 12px 以下?如果一定要设置为 12px 以下要怎么做?

问题:为什么不建议将 font-size 设置为 12px 以下?如果一定要设置为 12px 以下要怎么做? 先看看把 font-size 设置为 12px 以下时的效果:(浏览器为 Chrome 52) 在其他浏览器上效果却不一样: 因为 Chrome 这款任性的浏览器做了如下限制: 1. font-size 有一个最小值 12px(不同操作系统.不同语言可能限制不一样),低于 12px 的,一律按 12px 显示.理由是 Chrome 认为低于 12px 的中文对人类是不友好的. 2. 但是

ARMv7处理器各个模式之间是怎样切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?

1.ARM处理器各个模式之间是怎样切换的? 答:除用户模式外的其它6种模式称为特权模式,这些模式中,程序能够訪问全部系统资源,也能够随意进行处理器模式的切换.处理器模式能够通过软件控制进行切换(直接设置CPSR寄存器的后五位就能够在6种特权模式之间互相切换),也能够通过外部中断或异常处理过程进行切换(比如,在USR模式下,发生中断后切换到IRQ模式). 2.ARM各个模式之间切换时,上下文的保存哪些是硬件在做?哪些是操作系统在做? 答:CPU做的: (1)把返回地址保存到对应模式的lr寄存器中,

思考题:用Use Case获取需求的方法是否有什么缺陷,还有什么地方需要改进?(提示:是否对所有的应用领域都适用?使用的方便性?.......)

思考题: 用Use Case获取需求的方法是否有什么缺陷,还有什么地方需要改进?(提示:是否对所有的应用领域都适用?使用的方便性?.......) 简答: 一.用例解释: 在软件工程中,用例是一种在开发新系统或者软件改造时捕获潜在需求的技术.每个用例提供了一个或多个场景,该场景揭示了系统是如何同最终用户或其它系统交互的,从而获得一个明确的业务目标.用例要避免技术术语,取而代之的是最终用户或者领域专家的语言.用例一般是由软件开发者和最终用户共同创作的. 二.创建用例的原则: 用例是短文 用例可以是

你想建设一个能承受500万PV/每天的网站吗?服务器每秒要处理多少个请求才能应对?

你想建设一个能承受500万PV/每天的网站吗?服务器每秒要处理多少个请求才能应对? 你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢? PV是什么: PV是page view的简写.PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv. 计算模型:  每台服务器每秒处理请求的数量=((80%*总PV量)/(24小时*60分*60秒*40%)) / 服务器数量 .其中关键的参数是80%.40%.表示一天中有80%的请求发