PyQt4学习笔记---------------Day

xiaoxiao2021-02-27  142

#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

WEL测试 认证博客专家 软件测试 性能测试 接口测试 一线的测试工作人员。喜欢专研并应用新的技术,用于提升测试效率。擅长:测试新人培训、测试进阶、接口测试、性能测试、问题定位、自动化、数据测试、渗透测试! 如果对测试感兴趣或者遇到一些难题,可以加我微信:Wel_Test,加时填好备注!
转载请注明原文地址: https://www.6miu.com/read-15933.html

最新回复(0)