热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pyqt一个小例子

#-*-coding:utf-8-*-__author__'Administrator'fromPyQt4importQt,QtCore,QtGuiimportsy

# -*- 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‘24100秒倒计时测试‘)

        self.tinex=QtGui.QLabel(u‘10024点测试‘)

        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实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
author-avatar
捡到宝开封
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有