主页 > GUI教程 > 正文

Python GUI 教程 25行代码写一个小闹钟

今日咱们讲一下用Python写的GUI小程序。一个小闹钟(仅仅屏幕提示,没有声音哦)

让咱们先介绍这个闹钟怎么奇葩。

需求经过指令行发动。

没有标题栏。

没菜单。

乃至没有封闭按钮。

没有运转界面。

看到这儿想必咱们要问了,何须去做一个这样弱爆了的程序呢。明显,教育含义大于其实践用途。

像其他的模块相同,QT界面包是需求加载的。

咱们用到了指令行输入,所以,sys模块也是有必要的。

用到了时刻,可是咱们不需求运用time模块,咱们用QT供给的QTime模块。

让咱们先写import 语句部分。

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
app = QApplication(sys.argv)

这是一个操控qt程序命脉的类,之后咱们会渐渐解说。在每一个Qt程序中,都会找到相似的语句。

之后便是输入闹钟时刻了。上程序。

try:
    message = "Alert!"
    if len(sys.argv) < 2:
        raise ValueError
    hours, mins = sys.argv[1].split(":")
    due = QTime(int(hours), int(mins))
    if not due.isValid():
        raise ValueError
    if len(sys.argv) > 2:
        message = " ".join(sys.argv[2:])
except ValueError:
    message = "Usage: alert.pyw HH:MM [optional message]"

其间包含了反常处理,关于一个应用程序,咱们应该将一切的反常情况都考虑进去。

程序中运用raise 来触发反常。迫使程序进入咱们的料想轨迹。

明显,上面的程序是不行的,它并没有时刻判别和GUI部分。

怎么判别时刻是否到了呢,咱们给出一个不是特别精确的办法,守时判别。

import time
while QTime.currentTime() < due:
#休眠20秒
    time.sleep(20)

当时刻到了咱们就会跳到下一步,创立一个窗体,推迟60s 后封闭。

label = QLabel("<font color=red size=72><b>" + message + "</b></font>")
label.setWindowFlags(Qt.SplashScreen)
label.show()
QTimer.singleShot(60000, app.quit) # 1 minute
app.exec_()

看来,咱们又需求写一个关于 QTime模块的介绍了。

现在把一切的语句放在一同。让咱们测验下。


附完好代码:

import sys
import time
from PyQt4.QtCore import *
from PyQt4.QtGui import *
app = QApplication(sys.argv)
try:
    message = "Alert!"
    if len(sys.argv) < 2:
        raise ValueError
    hours, mins = sys.argv[1].split(":")
    due = QTime(int(hours), int(mins))
    if not due.isValid():
        raise ValueError
    if len(sys.argv) > 2:
        message = " ".join(sys.argv[2:])
except ValueError:
    message = "Usage: alert.pyw HH:MM [optional message]" # 24hr clock
while QTime.currentTime() < due:
    time.sleep(20) # 20 seconds
label = QLabel("<font color=red size=72><b>" + message + "</b></font>")
label.setWindowFlags(Qt.SplashScreen)
label.show()
QTimer.singleShot(60000, app.quit) # 1 minute
app.exec_()


上一篇:用python 30行规划一个归于自己的计算器
下一篇:python gui - PyQt4 精彩实例剖析之电子钟

PythonTab微信大众号:

Python技能交流合作群 ( 请勿加多个群 ):

群1: 87464755

群2: 333646237

群3: 318130924

群4: 385100854