# -*- 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一个小例子的更多相关文章

  1. java连接mysql的一个小例子

    想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一 ...

  2. java操作xml的一个小例子

    最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...

  3. MVVM模式的一个小例子

    使用SilverLight.WPF也有很长时间了,但是知道Binding.Command的基本用法,对于原理性的东西,一直没有深究.如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个 ...

  4. 使用Trinity拼接以及分析差异表达一个小例子

    使用Trinity拼接以及分析差异表达一个小例子  2017-06-12 09:42:47     293     0     0 Trinity 将测序数据分为许多独立的de Brujin grap ...

  5. 从一个小例子认识SQL游标

    1    什么是游标: 关系数据库中的操作会对整个行集起作用. 例如,由 SELECT 语句返回的行集包括满足该语句的 WHERE 子句中条件的所有行. 这种由语句返回的完整行集称为结果集. 应用程序 ...

  6. 关于SVN配置文件的一个小例子

    1   背景假设 厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计.销售,并在北京.上海各设立了一个办事处.对于工作日志,原先采用邮件方式发给经理,但是这种方式 ...

  7. Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期

    学习任何一门框架,都不可能一股脑儿的从入口代码从上到下,把代码看完, 这样其实是很枯燥的,我想也很少有人这么干,或者这么干着干着可能干不下去了. 因为肯定很无聊. 我们先从一个最最简单的小例子,来查看 ...

  8. Spring和Hibernate结合的一个小例子

    1.新建一个SpringHibernate的maven项目 2.pom文件的依赖为 <dependency> <groupId>junit</groupId> &l ...

  9. Spring.Net在ASP.NET Mvc里使用的一个小例子

    就贴个小例子,就不注意格式了. 1.下载dll NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget 在vs的NuGet里 ...

随机推荐

  1. 通过代码设置radiobutton不同方位图标的两种方法

    更换radiobutton中的图片在xml中很好设置,但对于初学者如何在代码中设置还是不容易找的.没法子,通过看原版api找到两个方法,setCompoundDrawables和setCompound ...

  2. Http协议学习小结

    1.Http基本概述: HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则. HTTP就是一个通信规则,通 ...

  3. RecyclerView 详解

    概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用.  据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件 ...

  4. html5.边框属性相关知识点

    border-left 定义左边框 border-top 定义上边框 border-right 定义有边框 border-bottom 定义下边框 边框样式: dotted 边框线为点状虚线 dash ...

  5. WEB 开发所用的网站

    常用前端手册: http://caniuse.com/ http://www.w3school.com.cn/ http://www.runoob.com/ http://www.css88.com/ ...

  6. QueryFilter与SpatialFilter - 浅谈

    我们知道,GIS不仅仅有属性查询,还有空间查询.而 QueryFilter 对应于 属性查询,而 SpatialFilter 对应于 空间查询.

  7. Altium Designer极坐标布局方法

    1.键盘快捷组合 O+G,打开栅格管理器,点击左下角的“菜单”,在对话框中的选择“添加极坐标栅格”. 2.双击新添加的优先等级为1的栅格,在弹出的polar  grid editor 对话框中,对里边 ...

  8. 17--Box2D使用(三、触摸交互)

    Box2D引擎与触摸的交互通过创建鼠标关节以及碰撞检测来得到触摸点下面的刚体,在根据触摸操作完成相应的功能.首先添加触摸响应函数声明 virtual void ccTouchesBegan(cocos ...

  9. python 解决递归调用栈溢出

    递归函数 2578次阅读 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact ...

  10. Swift 可选链-备

    在Swift程序表达式中会看到问号(?)和感叹号(!),它们代表什么含义呢?这些符号都与可选类型和可选链相关,下面来看看可选链. 可选链: 类图: 它们之间是典型的关联关系类图.这些类一般都是实体类, ...