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软件开发中,界面操作或者线程之间通信都会经常用到消息,通过对消息的处理实现相应的操作.比较典型的过程是,用户操作窗口,然后有消息产生,送给窗口的消息处理函数处理,对用户的操作做出响应. 一.什 ...
随机推荐
- android经常使用正则工具类
此类提供日常开发中经常使用的正则验证函数.比方:邮箱.手机号.电话号码.身份证号码.日期.数字.小数.URL.IP地址等.使用Pattern对象的matches方法进行整个字符匹配,调用该方法相当于: ...
- (转)typedef用法
Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法.不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮 ...
- eclipse通过maven建立java se工程配置log4j,打包成zip,将jar包和配置文件分开,并以bat和sh文件启动java程序
一.新建maven的java工程 1.eclipse里file-new-other,选择maven Project 2.选中 Use default Workspace location,然后 nex ...
- ios很好的开源库
Tim9Liu9/TimLiu-iOS 自己总结的iOS.mac开源项目及库,持续更新.. 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD ...
- Ubuntu下如何安装并使用Objective-C
Objective-C是本人用过的最佳类C.面向对象的编程语言.Objective-C与标准C完美兼容,而在此基础上又加上了将面向对象的基础概念诠释得最好的SmallTalk元素,使得它既简洁.又灵活 ...
- js判断字符串是否包含某个字符串
String对象的方法 1,indexOf() (推荐) 方法可返回某个指定的字符串值在字符串中首次出现的位置.如果要检索的字符串值没有出现,则该方法返回 -1 var str = "123 ...
- RecyclerView 局部刷新(获取viewHolder 去刷新)
RecyclerView.ViewHolder viewHolder = mRecyclerView.findViewHolderForAdapterPosition(i); if (viewHold ...
- 【转载】asp.net 后台弹出提示框
感觉这种最好用: public void showMessage(string str_Message) { ClientScript.RegisterStartupScript(this.GetTy ...
- CodeForces937B:Vile Grasshoppers(素数性质)
The weather is fine today and hence it's high time to climb the nearby pine and enjoy the landscape. ...
- 预处理指令#pragram
#pragma介绍 #pragma是一个预处理指令,pragma的中文意思是『编译指示』.它不是Objective-C中独有的东西(貌似在C/C++中使用比较多),最开始的设计初衷是为了保证代码在不同 ...