PyQt5编程入门
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编程入门的更多相关文章
- Python可视化界面编程入门
Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sysfrom PyQt5.QtWidgets import QWidget,QApplicati ...
- PHP面向对象(OOP)编程入门教程
面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...
- Windows编程入门程序详解
引用:http://blog.csdn.net/jarvischu/article/details/8115390 1. 程序 /******************************* ...
- 【PHP面向对象(OOP)编程入门教程】1.什么是面向对象?
面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成 ...
- Linux 利器- Python 脚本编程入门(一)
导读 众所周知,系统管理员需要精通一门脚本语言,而且招聘机构列出的职位需求上也会这么写.大多数人会认为 Bash (或者其他的 shell 语言)用起来很方便,但一些强大的语言(比如 Python)会 ...
- 转载自~浮云比翼:Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥)
Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥) 介绍:什么是线程,线程的优点是什么 线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可 ...
- OpenAl编程入门:播放一段音频
OpenAl编程入门 关于OpenAl我就不多介绍了,这两篇说明对于初步了解已经足够了:http://baike.baidu.com/view/1355367.htmhttp://en.wikiped ...
- [电子书] 《Android编程入门很简单》
<Android编程入门很简单>是一本与众不同的Android学习读物,是一本化繁为简,把抽象问题具体化,把复杂问题简单化的书.本书避免出现云山雾罩.晦涩难懂的讲解,代之以轻松活泼.由浅入 ...
- MFC编程入门之五(MFC消息映射机制概述)
在MFC软件开发中,界面操作或者线程之间通信都会经常用到消息,通过对消息的处理实现相应的操作.比较典型的过程是,用户操作窗口,然后有消息产生,送给窗口的消息处理函数处理,对用户的操作做出响应. 一.什 ...
随机推荐
- Unity3D游戏开发之粒子系统实现具体解释
今天为大家分享的是Unity3D中的粒子系统.粒子系统通经常使用来表现烟雾.云等高级效果.是一个十分注重制作技巧的部分.今天我们将以一个气泡的演示实例来一起学习怎样在Unity3D中使用粒子系统 ...
- 2016/05/25 抽象类与API(接口)差别
简单来说, 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的 ...
- DRF 之 版本控制
1.版本控制是干什么用的,为什么要有版本? 我们都知道每一个程序都是有版本的.而且版本也会升级从v1升级到v2.v3.v4·····,但是我们不可能因为新版本出现旧版本就不去维护,因为用户有权选择不更 ...
- 获取Android设备无线和以太网MAC地址
package com.raycloud.wolf.blogformac; import android.net.wifi.WifiManager; import android.support.v7 ...
- Spark简单集群搭建
1. 上传spark-2.2.0-bin-hadoop2.7.tgz安装包到/home/dtouding目录下 2. 解压安装包到/bigdata/目录下,tar –zxvf spark-2.2.0- ...
- css3某些特性
在下列情况下,建议使用opacity属性而不是rgba()函数 1.实现多种颜色(元素)的半透明效果.使用opacity属性,不仅背景颜色,就连文本颜色.边框颜色都会变透明. 2.在不知道颜色的情况下 ...
- react native 知识点总结(一)
一.关于react native 版本的升级 参照文档:http://reactnative.cn/docs/0.45/upgrading.html react-native -v 查看当前版本 ...
- BootLoader与Linux内核的参数传递【转】
本文转载自:http://blog.sina.com.cn/s/blog_476d8cf30100rttx.html 在嵌入式系统中,BootLoader 是用来初始化硬件,加载内核,传递参数.因为嵌 ...
- YTU 2424: C语言习题 字符串比较
2424: C语言习题 字符串比较 时间限制: 1 Sec 内存限制: 128 MB 提交: 1042 解决: 613 题目描述 写一函数,实现两个字符串的比较.即自己写一个strcmp函数,函数 ...
- 一步一步学Silverlight 2系列(31):图形图像综合实例—实现水中倒影效果
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...