python编程:PySide6实现QLCDNumber控件开始与暂停

# -*- coding: utf-8 -*-

################################################################################
## Form generated from reading UI file 'designerrVjvFy.ui'
##
## Created by: Qt User Interface Compiler version 6.2.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
import time
from PySide6.QtCore import (QCoreApplication, 
    QMetaObject, QThread, Signal, QSize)
from PySide6.QtWidgets import (QApplication, QLCDNumber, QPushButton,
     QVBoxLayout, QWidget)

class Ui_Dialog(QWidget):
    def setupUi(self,QWidget):
        if not QWidget.objectName():
                QWidget.setObjectName(u"QWidget")
        QWidget.resize(530, 280)
        QWidget.setMinimumSize(QSize(530, 230))
        QWidget.setMaximumSize(QSize(530, 280))    #固定窗口大小      
        self.verticalLayout = QVBoxLayout(QWidget) #使用垂直布局
        self.verticalLayout.setObjectName(u"verticalLayout")
        
        self.lcdNumber = QLCDNumber(QWidget)       #添加QLCDNumber控件 
        self.lcdNumber.setObjectName(u"lcdNumber")
        self.verticalLayout.addWidget(self.lcdNumber)

        self.pushButton = QPushButton(QWidget)     #添加按钮
        self.pushButton.setObjectName(u"pushButton")
        self.verticalLayout.addWidget(self.pushButton)


        self.work=Work()
        self.work.valve.connect(self.lcdNumber.display)
        self.pushButton.clicked.connect(self.doWork)

        self.retranslateUi(QWidget)

        QMetaObject.connectSlotsByName(QWidget)
    # setupUi

    def retranslateUi(self, Widget):
        Widget.setWindowTitle(QCoreApplication.translate("QWidget", 
        u"LCD\u63a7\u4ef6\u7684\u5f00\u59cb\u6682\u505c", None)) #ASCII码标题
        self.pushButton.setText(QCoreApplication.translate("QWidget", u"\u5f00\u59cb", None))
    # retranslateUi
    def doWork(self):
        
        if self.work.a == 2000 :
           self.work.a =0 
        if self.work.isFinished():
            self.work.start()
        #使用嵌套 if最省事,但不容易看懂
        if self.pushButton.text() == "开始" and self.work.pause == False: 
            self.pushButton.setText("停止")
            self.work.start()
            return
        elif self.pushButton.text() == "停止" and self.work.pause == False :
            self.pushButton.setText("开始")
            self.work.pause = True 
            return
        elif self.pushButton.text() == "开始" and self.work.pause == True :
            self.work.pause = False
            self.pushButton.setText("停止")
            return
        elif self.pushButton.text() == "停止" and self.work.pause == True :
            self.work.pause = False
            self.pushButton.setText("开始")
            return

class Work(QThread):
    #实例化一个信号对象
    valve = Signal(int)
    q = True
    pause = False
    a = 0
    def __int__(self):
        super(Work, self).__init__()          

    def run(self):
        while self.q : #self.q控制程序是否执行            
            if self.pause :
                time.sleep(0.2)
                continue
            while not self.pause and self.a<2000: #self.pause控制程序是否暂停
                self.a+=1
                time.sleep(0.01)                       
                self.valve.emit(self.a)      
            if self.a>=2000 :  #self.a>2000程序结束
                return    
            



if __name__ == "__main__":

    import sys
    app = QApplication(sys.argv)
    wdg = QWidget()
    ui = Ui_Dialog()
    ui.setupUi(wdg)
    wdg.show()
    sys.exit(app.exec())

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值