1  25行的弹出式闹钟

import sys
import time from PyQt5 import QtCore
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QApplication #先创建一个app实例
app = QApplication(sys.argv) # handle the argv
try:
due = QtCore.QTime.currentTime()
message = 'Alert!'
if len(sys.argv) < 2:
raise ValueError
hours, mins = sys.argv[1].split(':')
due = QtCore.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: alarm_clock.py HH:MM [optional message]' while QtCore.QTime.currentTime() < due:
print(QtCore.QTime.currentTime())
time.sleep(1) #设定标签内容,然后show这个标签
#调用一个单次触发器,6w毫秒(1min)后,触发app.quit。
label = QLabel('<font color=red size=72><b>' + message + '</b></font>')
label.show()
QtCore.QTimer.singleShot(60000, app.quit) #执行app实例
app.exec_()

  

2 30行的表达式求值程序

import sys
from math import *
from PyQt5 import QtCore
from PyQt5.QtWidgets import QApplication,QDialog,QLineEdit,QTextBrowser,QVBoxLayout #Form这个class是一个界面
class Form(QDialog):
#使用几种方法来做用户响应
def __init__(self,parent=None):
super(Form, self).__init__(parent)
self.browser = QTextBrowser()
self.lineedit = QLineEdit('input the expression and press Enter')
self.lineedit.selectAll() #设定布局
layout = QVBoxLayout()
layout.addWidget(self.browser)
layout.addWidget(self.lineedit)
self.setLayout(layout)
self.lineedit.setFocus() #设定触发机制
self.lineedit.returnPressed.connect(self.updateUi) #设定title
self.setWindowTitle('Calculate') #具体的数学方法
def updateUi(self):
try:
text = self.lineedit.text()
result = eval(text)
self.browser.append('%s = %s' %(text,result))
except:
self.browser.append('<font color=red>%s is invalid!</font>' %text) app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()

  

3 70行货币转换程序

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import * class Form(QDialog):
def __init__(self,parent=None):
super(Form, self).__init__(parent)
self.rates = {'CNY': 1, 'HK': 0.86, 'USD': 6.79} # 创建多选框,并添加多选数据
self.fromComboBox = QComboBox()
self.fromComboBox.addItems(self.rates) #创建浮点型数据微调框,并设定精度范围和初始值
self.fromSpinBox = QDoubleSpinBox()
self.fromSpinBox.setRange(0.01,100000.00)
self.fromSpinBox.setValue(1.00) #第二个多选框,用于计算对应货币
self.toComboBox = QComboBox()
self.toComboBox.addItems(self.rates) #创建一个标签,并给定显示内容
self.toLable = QLabel('1.00') #将多个界面构成一个布局
grid = QGridLayout()
grid.addWidget(self.fromComboBox, 1, 0)
grid.addWidget(self.fromSpinBox,1,1)
grid.addWidget(self.toComboBox,2,0)
grid.addWidget(self.toLable,2,1)
self.setLayout(grid) #只要任意一个变化,就触发函数,用于实时计算结果
#多选框是index变化,浮点数字框是value变化
self.fromComboBox.currentIndexChanged.connect(self.updateUi)
self.toComboBox.currentIndexChanged.connect(self.updateUi)
self.fromSpinBox.valueChanged.connect(self.updateUi) #设置标题
self.setWindowTitle('Currency') def updateUi(self):
#QComboBox有index和text,对应字典中的k-v。当索引变化,就触发text的计算,然后写入toLable(取两位小数点)。
to = self.toComboBox.currentText()
from_ = self.fromComboBox.currentText()
amount = self.rates[from_] / self.rates[to] * self.fromSpinBox.value()
self.toLable.setText('%.2f' %amount) app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()

  

PyQt5编程入门的更多相关文章

  1. Python可视化界面编程入门

    Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sysfrom PyQt5.QtWidgets import QWidget,QApplicati ...

  2. PHP面向对象(OOP)编程入门教程

    面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...

  3. Windows编程入门程序详解

    引用:http://blog.csdn.net/jarvischu/article/details/8115390 1.     程序 /******************************* ...

  4. 【PHP面向对象(OOP)编程入门教程】1.什么是面向对象?

    面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成 ...

  5. Linux 利器- Python 脚本编程入门(一)

    导读 众所周知,系统管理员需要精通一门脚本语言,而且招聘机构列出的职位需求上也会这么写.大多数人会认为 Bash (或者其他的 shell 语言)用起来很方便,但一些强大的语言(比如 Python)会 ...

  6. 转载自~浮云比翼:Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥)

    Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥)   介绍:什么是线程,线程的优点是什么 线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可 ...

  7. OpenAl编程入门:播放一段音频

    OpenAl编程入门 关于OpenAl我就不多介绍了,这两篇说明对于初步了解已经足够了:http://baike.baidu.com/view/1355367.htmhttp://en.wikiped ...

  8. [电子书] 《Android编程入门很简单》

    <Android编程入门很简单>是一本与众不同的Android学习读物,是一本化繁为简,把抽象问题具体化,把复杂问题简单化的书.本书避免出现云山雾罩.晦涩难懂的讲解,代之以轻松活泼.由浅入 ...

  9. MFC编程入门之五(MFC消息映射机制概述)

    在MFC软件开发中,界面操作或者线程之间通信都会经常用到消息,通过对消息的处理实现相应的操作.比较典型的过程是,用户操作窗口,然后有消息产生,送给窗口的消息处理函数处理,对用户的操作做出响应. 一.什 ...

随机推荐

  1. eclipse svn org.tigris.subversion.javahl.ClientException: RA layer request failed

    突然之间eclipse使用svn更新项目时报错,org.tigris.subversion.javahl.ClientException: RA layer request failed 网上搜的都是 ...

  2. IO管理与磁盘调度

  3. java工具类(四)之实现日期随意跳转

    Java实现日期随意跳转 项目开发过程中.须要进行订单提醒日期的设置.主要包含设置每月指定的日期或者指定的天数,代码例如以下: public static String DateOperation(S ...

  4. Android安装应用后点击&quot;打开&quot;(Open)带来的问题及解决方案

    MainActivity例如以下: package cc.cc; import android.app.Activity; import android.content.Intent; import ...

  5. adb4robotium跨进程框架抛出InputStream cannot be null的异常的解决方案

    转自:http://blog.csdn.net/qingchunjun/article/details/43448371 之前我写的关于利用adb框架来进行robotium跨进程操作的文章中,有些朋友 ...

  6. 《ASP.NET》数据绑定—DataList

    DataList控件是.NET中的一个控件.DataList控件以表的形式呈现数据(在属性生成器中能够编辑),通过该控件,您能够使用不同的布局来显示数据记录(使用模板编辑).比如,将数据记录排成列或行 ...

  7. UVA - 12338 Anti-Rhyme Pairs 二分+hash

    题目链接:传送门 题意: 给你n个串 问你任意两个串的最大公共前缀长度是多少 题解: 二分+hash 思路很明显,我最近用来写hash 很鸡肋 #include<bits/stdc++.h> ...

  8. opencv IplImage各参数详细介绍以及如何从一个JPEG图像数据指针转换得到IplImage

    这篇文章里介绍得最清楚了.http://blog.chinaunix.net/uid-22682903-id-1771421.html 关于颜色空间  RGB颜色空间已经非常熟悉了.HSV颜色空间需要 ...

  9. Android Studio 3.0.1模拟器启动报错Emulator: glClear:466 GL err 0x502

    启动模拟器时,报了一大堆以上错误 启动起来之后, Emulator的画面没有正常显示, 点击鼠标会闪烁, 有时还会上下颠倒 有可能是驱动版本太低不支持一些特性,因此就下载个驱动精灵.升级了显卡驱动,结 ...

  10. Javascript中两种最通用的定义类的方法

    在Javascript中,一切都是对象,包括函数.在Javascript中并没有真正的类,不能像C#,PHP等语言中用 class xxx来定义.但Javascript中提供了一种折中的方案:把对象定 ...