pyqt一个小例子
# -*- coding: utf-8 -*-
__author__ = 'Administrator'
from PyQt4 import Qt,QtCore,QtGui
import sys,random,operator,decimal,threading,time,winsound
class E_24(QtGui.QDialog):
def __init__(self,parent=None):
super(E_24,self).__init__(parent)
self.setWindowIcon(QtGui.QIcon('I/i24.png'))
self.setStyleSheet("* { margin-top:0pt; "> self.resize(400,300)
self.setWindowTitle(U'24点测试v1.0版本')
labe1=QtGui.QLabel(self)
self.text1=QtGui.QLineEdit(u'',self)#第一个数字
self.text1.setStyleSheet("* { margin-top:0pt; "> labe2=QtGui.QLabel(self)
self.text2=QtGui.QLineEdit(u'',self)#第二个数字
self.text2.setStyleSheet("* { margin-top:0pt; "> labe3=QtGui.QLabel(self)
self.text3=QtGui.QLineEdit(u'',self)#第三个数字
self.text3.setStyleSheet("* { margin-top:0pt; "> labe4=QtGui.QLabel(self)
self.text4=QtGui.QLineEdit(u'',self)#第四个数字
self.text4.setStyleSheet("* { margin-top:0pt; "> labe5=QtGui.QLabel(self)
self.text5=QtGui.QLineEdit(u'',self)#第五个数字
self.text5.setStyleSheet("* { margin-top:0pt; "> self.text6=QtGui.QTextBrowser(self)
self.text6.setStyleSheet("* { margin-top:0pt; "> self.button1=QtGui.QPushButton(u'确定',self)
self.button1.setStyleSheet("* { margin-top:0pt; "> self.button2=QtGui.QPushButton(u'关闭',self)
self.button2.setStyleSheet("* { margin-top:0pt; "> self.button3=QtGui.QPushButton(u'清除',self)
self.button3.setStyleSheet("* { margin-top:0pt; "> self.change1=QtGui.QLabel(u'你的次数:5次',self)
self.change1.setStyleSheet("* { margin-top:0pt; "> self.randon1=QtGui.QPushButton(u'随机数',self)
self.jia=QtGui.QPushButton('+',self)
self.jian=QtGui.QPushButton('-',self)
self.zuokouhao=QtGui.QPushButton('(',self)
self.youkouhao=QtGui.QPushButton(')',self)
self.cheng=QtGui.QPushButton('*',self)
self.chu1=QtGui.QPushButton('/',self)
self.chu2=QtGui.QPushButton('//',self)
self.chu3=QtGui.QPushButton('%',self)
self.deyu=QtGui.QPushButton('=',self)
self.tine=QtGui.QLabel(u'24点100秒倒计时测试')
self.tinex=QtGui.QLabel(u'100内24点测试')
self.startButton=QtGui.QPushButton('Start')
self.stopButton=QtGui.QPushButton('Stop')
self.startButton1=QtGui.QPushButton('Start1')
self.stopButton.setEnabled(False)
self.timer=Timer()##!!!!!!!!!!!!!!!
self.timer2=Timere()##############
self.tine.setFrameStyle(Qt.QFrame.StyledPanel|
Qt.QFrame.Plain)
self.tinex.setFrameStyle(Qt.QFrame.StyledPanel|
Qt.QFrame.Plain)
self.text1.selectAll()
self.button1.setDown(True)
left1=QtGui.QGridLayout()
left1.setSpacing(10)
left1.addWidget(labe1,1,0)
left1.addWidget(self.text1,1,0)
left1.addWidget(labe2,2,0)
left1.addWidget(self.text2,2,0)
left1.addWidget(labe3,3,0)
left1.addWidget(self.text3,3,0)
left1.addWidget(labe4,4,0)
left1.addWidget(self.text4,4,0)
left1.addWidget(labe5,5,0)
left1.addWidget(self.text5,5,0)
left1.addWidget(self.jia,2,1)
left1.addWidget(self.jian,2,2)
left1.addWidget(self.zuokouhao,4,1)
left1.addWidget(self.youkouhao,3,1)
left1.addWidget(self.cheng,3,2)
left1.addWidget(self.tine,6,2)
left1.addWidget(self.chu1,4,2)
left1.addWidget(self.chu2,5,1)
left1.addWidget(self.chu3,5,2)
left1.addWidget(self.text6,6,0)
left1.addWidget(self.button1,7,1)
left1.addWidget(self.button2,7,2)
left1.addWidget(self.change1,1,1)
left1.addWidget(self.button3,8,1)
left1.addWidget(self.randon1,8,2)
left1.addWidget(self.deyu,6,1)
left1.addWidget(self.startButton,1,2)
left1.addWidget(self.stopButton,1,3)
left1.addWidget(self.tinex,2,3)
left1.addWidget(self.startButton1,3,3)
l=QtGui.QVBoxLayout()
l.addLayout(left1)
self.setLayout(l)
QtCore.QObject.connect(self.button3,QtCore.SIGNAL('clicked()'),self.__clear__)
QtCore.QObject.connect(self.button2,QtCore.SIGNAL('clicked()'),self.__close__)
QtCore.QObject.connect(self.text1,QtCore.SIGNAL("textChanged(const QString &)"),self.__update__1)
QtCore.QObject.connect(self.text2,QtCore.SIGNAL("textChanged(const QString &)"),self.__update__2)
QtCore.QObject.connect(self.text3,QtCore.SIGNAL("textChanged(const QString &)"),self.__update__3)
QtCore.QObject.connect(self.text4,QtCore.SIGNAL("textChanged(const QString &)"),self.__update__4)
QtCore.QObject.connect(self.text5,QtCore.SIGNAL("textChanged(const QString &)"),self.__update__5)
QtCore.QObject.connect(self.randon1,QtCore.SIGNAL('clicked()'),self.__random__)
#QtCore.QObject.connect(self.button1,QtCore.SIGNAL('clicked()'),self._ty_)
self.text1.textChanged[str].connect(self._ty_)
self.text2.textChanged[str].connect(self._ty_)
self.text3.textChanged[str].connect(self._ty_)
self.text4.textChanged[str].connect(self._ty_)
self.text5.textChanged[str].connect(self._ty_)
re1=QtCore.QRegExp('[0-9+()*/%//=-]*')
self.text1.setValidator(QtGui.QRegExpValidator(re1,self))
self.text2.setValidator(QtGui.QRegExpValidator(re1,self))
self.text3.setValidator(QtGui.QRegExpValidator(re1,self))
self.text4.setValidator(QtGui.QRegExpValidator(re1,self))
self.text5.setValidator(QtGui.QRegExpValidator(re1,self))
QtCore.QObject.connect(self.jia,QtCore.SIGNAL('clicked()'),self.__add1)
QtCore.QObject.connect(self.jian,QtCore.SIGNAL('clicked()'),self.__jian)
QtCore.QObject.connect(self.zuokouhao,QtCore.SIGNAL('clicked()'),self.__zuo)
QtCore.QObject.connect(self.youkouhao,QtCore.SIGNAL('clicked()'),self.__you)
QtCore.QObject.connect(self.cheng,QtCore.SIGNAL('clicked()'),self.__cheng)
QtCore.QObject.connect(self.chu1,QtCore.SIGNAL('clicked()'),self.__c1)
QtCore.QObject.connect(self.chu2,QtCore.SIGNAL('clicked()'),self.__c2)
QtCore.QObject.connect(self.chu3,QtCore.SIGNAL('clicked()'),self.__c3)
QtCore.QObject.connect(self.deyu,QtCore.SIGNAL('clicked()'),self.__deyu)
QtCore.QObject.connect(self.button1,QtCore.SIGNAL('clicked()'),self.error)
self.connect(self.startButton, QtCore.SIGNAL("clicked()")
,self.start)
self.connect(self.stopButton, QtCore.SIGNAL("clicked()")
, self.stop)
self.connect(self.timer, QtCore.SIGNAL("updateTime()")
, self.updateTime)
self.setWindowFlags(QtCore.Qt.WindowMaximizeButtonHint)
self.button1.setEnabled(False)
self.button2.setEnabled(False)
self.button3.setEnabled(False)
self.randon1.setEnabled(False)
self.jian.setEnabled(False)
self.jia.setEnabled(False)
self.chu3.setEnabled(False)
self.chu2.setEnabled(False)
self.chu1.setEnabled(False)
self.cheng.setEnabled(False)
self.zuokouhao.setEnabled(False)
self.youkouhao.setEnabled(False)
self.text1.setEnabled(False)
self.text6.setEnabled(False)
self.text4.setEnabled(False)
self.text5.setEnabled(False)
self.text2.setEnabled(False)
self.text3.setEnabled(False)
self.tine.setEnabled(True)
self.text6.setEnabled(False)
self.deyu.setEnabled(False)
self.tinex.setEnabled(False)
self.startButton1.setEnabled(False)
self.connect(self.startButton1, QtCore.SIGNAL("clicked()")
, self.start1)
self.connect(self.stopButton, QtCore.SIGNAL("clicked()")
, self.stop1)
self.connect(self.timer2, QtCore.SIGNAL("updateTime()")
, self.updateTime1)
def updateTime1(self):
self.tinex.setText(u"游戏时间: %s s" % QtCore.QString.number(self.sec))
self.sec += 1
if self.sec>5:
self.tinex.setText(u'线束')
def start1(self):
self.sec = 0
self.startButton1.setEnabled(False)
self.startButton.setEnabled(False)
self.stopButton.setEnabled(True)
self.timer2.start()
def stop1(self):
self.timer2.stop()
self.stopButton.setEnabled(False)
self.startButton.setEnabled(True)
self.startButton1.setEnabled(False)
self.tinex.setText(u"游戏结束")
def updateTime(self):
self.tine.setText(u"离游戏开始还有:%s秒" %QtCore.QString.number(self._time1))
self._time1-=1
if self._time1<0:
self.timer.stop()
self.tine.setText(u'时间到了,游戏开始')
self.tinex.setEnabled(False)
self.startButton.setEnabled(True)
self.stopButton.setEnabled(False)
self.button1.setEnabled(True)
self.button2.setEnabled(True)
self.button3.setEnabled(True)
self.randon1.setEnabled(True)
self.jian.setEnabled(True)
self.jia.setEnabled(True)
self.chu3.setEnabled(True)
self.chu2.setEnabled(True)
self.chu1.setEnabled(True)
self.cheng.setEnabled(True)
self.zuokouhao.setEnabled(True)
self.youkouhao.setEnabled(True)
self.text1.setEnabled(True)
self.text6.setEnabled(True)
self.text4.setEnabled(True)
self.text5.setEnabled(True)
self.text2.setEnabled(True)
self.text3.setEnabled(True)
self.tine.setEnabled(False)
self.text6.setEnabled(True)
self.deyu.setEnabled(True)
self.tinex.setEnabled(True)
self.startButton1.setEnabled(True)
def start(self):
self._time1=5
self.startButton.setEnabled(False)
self.startButton1.setEnabled(False)
self.stopButton.setEnabled(True)
self.timer.start()
def stop(self):
self.timer.stop()
self.stopButton.setEnabled(False)
self.startButton1.setEnabled(True)
self.startButton.setEnabled(True)
self.button1.setEnabled(False)
self.button2.setEnabled(False)
self.button3.setEnabled(False)
self.randon1.setEnabled(False)
self.jian.setEnabled(False)
self.jia.setEnabled(False)
self.chu3.setEnabled(False)
self.chu2.setEnabled(False)
self.chu1.setEnabled(False)
self.cheng.setEnabled(False)
self.zuokouhao.setEnabled(False)
self.youkouhao.setEnabled(False)
self.text1.setEnabled(False)
self.text6.setEnabled(False)
self.text4.setEnabled(False)
self.text5.setEnabled(False)
self.text2.setEnabled(False)
self.text3.setEnabled(False)
self.tine.setEnabled(True)
self.text6.setEnabled(False)
self.deyu.setEnabled(False)
self.startButton1.setEnabled(False)
self.tine.setText(u"重置倒计时时间")
def __deyu(self):
self.text6.append(str('='))
def __add1(self):
self.text6.append(str('+'))
def __jian(self):
self.text6.append(str('-'))
def __zuo(self):
self.text6.append(str('('))
def __you(self):
self.text6.append(str(')'))
def __cheng(self):
self.text6.append(str('*'))
def __c1(self):
self.text6.append(str('/'))
def __c2(self):
self.text6.append(str('//'))
def __c3(self):
self.text6.append(str('%'))
def _ty_(self,text):
self.text6.append(text)
self.text6.adjustSize()
def __random__(self):
lst=[self.text1,self.text4,self.text3,self.text5,self.text2]
num1=[1,2,3,4,5,6,7,8,9,0]
if lst!='':
s=random.sample(num1,5)
self.text1.setText(str(s[0]))
self.text2.setText(str(s[1]))
self.text3.setText(str(s[2]))
self.text4.setText(str(s[3]))
self.text5.setText(str(s[4]))
else:
return
def __update__1(self):
self.button3.setEnabled(True)
def __update__2(self):
self.button3.setEnabled(True)
def __update__3(self):
self.button3.setEnabled(True)
def __update__4(self):
self.button3.setEnabled(True)
def __update__5(self):
self.button3.setEnabled(True)
def __clear__(self):
self.button3.setEnabled(False)
lst=[self.text1,self.text4,self.text3,self.text5,self.text2]
if lst!=0:
self.text2.clear()
self.text5.clear()
self.text3.clear()
self.text1.clear()
self.text4.clear()
self.text6.clear()
self.button3.setEnabled(False)
def __close__(self):
sys.exit(0)
def error(self):
try:
if int(decimal.Decimal(str(self.text1.text()))):
pass
if int(decimal.Decimal(str(self.text2.text()))):
pass
if int(decimal.Decimal(str(self.text3.text()))):
pass
if int(decimal.Decimal(str(self.text4.text()))):
pass
if int(decimal.Decimal(str(self.text5.text()))):
pass
except Exception:
if (self.text1.text())=='':
print QtGui.QMessageBox.information(self,u'错误提示',u'第一项错误:self.text1,请重新输入',2)
elif (self.text2.text())=='':
print QtGui.QMessageBox.information(self,u'错误提示',u'第二项错误:self.text2,请重新输入',2)
elif (self.text3.text())=='':
print QtGui.QMessageBox.information(self,u'错误提示',u'第三项错误:self.text3,请重新输入',2)
elif (self.text4.text())=='':
print QtGui.QMessageBox.information(self,u'错误提示',u'第四项错误:self.text4,请重新输入',2)
elif (self.text5.text())=='':
print QtGui.QMessageBox.information(self,u'错误提示',u'第五项错误:self.text5,请重新输入',2)
class Timer(QtCore.QThread):
def __init__(self, parent=None):
super(Timer, self).__init__(parent)
self.stoped = False
self.mutex = QtCore.QMutex()
def run(self):
with QtCore.QMutexLocker(self.mutex):
self.stoped = False
while True:
if self.stoped:
return
self.emit(QtCore.SIGNAL("updateTime()"))
time.sleep(1)
def stop(self):
with QtCore.QMutexLocker(self.mutex):
self.stoped = True
def isStoped(self):
with QtCore.QMutexLocker(self.mutex):
return self.stoped
class Timere(QtCore.QThread):
def __init__(self, parent=None):
super(Timere, self).__init__(parent)
self.stoped = False
self.mutex = QtCore.QMutex()
def run(self):
with QtCore.QMutexLocker(self.mutex):
self.stoped = False
while True:
if self.stoped:
return
self.emit(QtCore.SIGNAL("updateTime()"))
time.sleep(1)
def stop(self):
with QtCore.QMutexLocker(self.mutex):
self.stoped = True
def isStoped(self):
with QtCore.QMutexLocker(self.mutex):
return self.stoped
app=QtGui.QApplication(sys.argv)
e_24=E_24()
e_24.show()
sys.exit(app.exec_())
如图:
pyqt一个小例子的更多相关文章
- java连接mysql的一个小例子
想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一 ...
- java操作xml的一个小例子
最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...
- MVVM模式的一个小例子
使用SilverLight.WPF也有很长时间了,但是知道Binding.Command的基本用法,对于原理性的东西,一直没有深究.如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个 ...
- 使用Trinity拼接以及分析差异表达一个小例子
使用Trinity拼接以及分析差异表达一个小例子 2017-06-12 09:42:47 293 0 0 Trinity 将测序数据分为许多独立的de Brujin grap ...
- 从一个小例子认识SQL游标
1 什么是游标: 关系数据库中的操作会对整个行集起作用. 例如,由 SELECT 语句返回的行集包括满足该语句的 WHERE 子句中条件的所有行. 这种由语句返回的完整行集称为结果集. 应用程序 ...
- 关于SVN配置文件的一个小例子
1 背景假设 厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计.销售,并在北京.上海各设立了一个办事处.对于工作日志,原先采用邮件方式发给经理,但是这种方式 ...
- Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期
学习任何一门框架,都不可能一股脑儿的从入口代码从上到下,把代码看完, 这样其实是很枯燥的,我想也很少有人这么干,或者这么干着干着可能干不下去了. 因为肯定很无聊. 我们先从一个最最简单的小例子,来查看 ...
- Spring和Hibernate结合的一个小例子
1.新建一个SpringHibernate的maven项目 2.pom文件的依赖为 <dependency> <groupId>junit</groupId> &l ...
- Spring.Net在ASP.NET Mvc里使用的一个小例子
就贴个小例子,就不注意格式了. 1.下载dll NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget 在vs的NuGet里 ...
随机推荐
- JAVA基础1
阶段0:拟出一个计划 阶段1:要制作什么? 阶段2:如何构建? 阶段3:开始创建 阶段4:校订 阶段5:计划的回报 一.程序运行时,数据保存位置 1.寄存器.这是最快的保存区域,因为它位于和其他所 ...
- Swift学习笔记十六:协议
Protocol(协议)用于统一方法和属性的名称,而不实现不论什么功能. 协议可以被类.枚举.结构体实现.满足协议要求的类,枚举,结构体被称为协议的遵循者. 遵循者须要提供协议指定的成员,如属性,方法 ...
- com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行
參考博客com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行 java获取结果集,if(rs!=null).和while(rs.next( ...
- Android 使用新浪微博SSO授权
新浪微博SSO授权,很早就做好了,只是一直没有时间整理博客,今天加班,晚上闲暇之时便想到整理一下.由于整个七月份很忙,加班很多.前段时间把腾讯微博的SSO认证整理好了.想在七月份翻篇之前再写点东西.好 ...
- linux中文乱码问题及locale详解
一.修改系统默认语言及中文乱码问题记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,i18n的内容如下: LANG="zh_CN.UTF-8&q ...
- TCP的长连接与短连接
1.TCP连接 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图所示: (1)第一次握手:建立连接,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEN ...
- C# 读取EXCEL数据
/// <summary> /// 读取EXCEL数据 /// </summary> /// <param name="Path">< ...
- Visual Studio的广告剧
一个热衷于code的developer,一个热衷于developer的girl,他们将发生怎样的故事? 第一集:<想做你的Code> 第二集:<让爱延长> 第三集:<幸福 ...
- 关于exec命令函数
exec执行某命令在命令行下没有问题,但是在php中就出错.这个问题99.99%与权限有关,但是exec执行的命令不会返回错误.一个技巧就是使用管道命令,假设你的exec调用如下: exec('con ...
- windows下配置lamp环境(2)---配置Apache服务器2.2.25
配置Apache 配置Apache时,先要找到安装目录中的主配置文httpd.conf,使用文本编辑器打开,最好不要使用windows自带的编辑器,可以使用NotePad++, vim,或者subli ...