PyQt4学习笔记---------------Day_1(Demo_1.pyw)

#coding=utf8
'''
python的控制台应用程序和Python模型文件通常都是以.py为后缀,
而Python的GUI应用程序以.pyw作为文件后缀。
.py和.pyw在Linux系统都是能正常使用的,
在Windows系统为了确保.pyw文件能正常使用,使用pythonw.exe文件运行.pyw文件。
这确保当运行一个Python GUI应用程序时,不必在控制窗口出现。
在Mac OS X系统,python GUI应用程序必须使用.pyw后缀的文件。

'''
#第一步导入相关包
import sys  #把命令行参数保存在sys.argv列表,因此导入此包
import time #需要调用sleep函数
#需要PyQt创建GUI和QTime类
from PyQt4.QtCore import *
from PyQt4.QtGui import  *

'''
第二步创建一个QApplication对象
每个PyQt GUI应用必须有一个QApplication对象。
该对象提供操作全局信息的入口,例如:应用目录、屏幕尺寸等等。
该对象也提供事件循环(event loop),其他功能在这不做赘述。
'''
#创建一个带有命令行参数的应用对象
#PyQt能识别自己的一些命令行参数,如:-geometry 、-style
#如果QApplication能识别参数中的信息,它将操作它们,然后从给定的列表中把它们移除。
#QApplication识别的参数列表是在QApplication初始化文档中给定的。
app=QApplication(sys.argv)


try:
    #创建一个变量保存当前时间
    due=QTime.currentTime()
    #创建一个变量并赋值
    message="Alert!" 
    #如果命令行列表中元素个数小于2
    #报ValueError错误
    if len(sys.argv)<2: 
        raise ValueError
    #命令列表中的第二个元素以:拆分
    #并把值保存在hours、mins变量中
    hours,mins=sys.argv[1].split(":")
    #把从命令行获取的小时、分钟强制转为整型
    #然后调用QTime进行拼接,更新due的值
    due=QTime(int(hours),int(mins))
    #判断due是否是有效QTime
    #如果due不是有效的QTime则报ValueError
    if not due.isValid():
        raise ValueError
    #如果命令行参数列表大于2
    #把列表中第三位元素机之后的元素连接在message上
    if len(sys.argv)>2:
        message=" ".join(sys.argv[2:])
#出现ValueError异常,把程序使用方法保存在message变量中
except ValueError:
    message="Usage:Demo_1.pyw HH:MM [optional message]"  #24小时时钟


#显示信息,判断当前时间是否小于due时间
while QTime.currentTime<due:
    time.sleep(10)  #设置循环时间间隔为10秒
    
'''
一个GUI应用程序需要一个widgets,
创建一个label用于显示message。
QLabel能接受HTML文本,
因此通过html标签设置显示字体的样式:white ,28

在PyQt中,任何widget都能被作为顶层(top-level)窗口,
即使是一个button或label。
当一个widget被这样使用,PyQt自动给它一个标题条。
'''
messageLabel=QLabel("<font color=red size=70><b>"+message+"</b></font>")
#不想该应用存在一个标题条,所有设置label窗口flags为splash screen(闪屏)
#设置屏幕标记为闪屏(Qt.SplashScreen),闪屏不存在标题条(title bar)
messageLabel.setWindowFlags(Qt.SplashScreen)
'''
由于是在用户窗口创建的label,
所有需要使用show()方法来显示label
此时label窗口未显示。
对show()的调用只是安排一个“paint event(绘画事假)”,
它向QApplication对象的事件队列添加一个新事件,
该事件是一个绘制指定的小部件(widget)的请求。
'''
messageLabel.show()
'''
Python库的time.sleep()功能需要几秒钟,
QTimer.singleShot()函数需要一个毫秒数。
给singleShot()方法两个参数:距离超时的时长、超时之后调用的方法。
超时之后调用的方法在PyQt中被称作"slot(插槽)"。
尽管PyQt文档中条款称做"Python slot(python插槽)",
"Qt slot"用来区分Python的__slots__。
Python的__slots__是Python语言引用的一种新的风格类型。
'''
#设置距离超时的时长为一分钟
#超时之后调用quit方法
#quit方法用于清理GUI应用终端的方法
#它关闭任何打开的窗口并释放占用的任何资源,然后退出。
QTimer.singleShot(60000, app.quit)
#调用该方法关闭QApplication对象事件循环。
app.exec_()
    


pyqt4 64位windows下载链接:http://pan.baidu.com/s/1mhTMGkC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WEL测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值