# -*- 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())
python编程:PySide6实现QLCDNumber控件开始与暂停
最新推荐文章于 2024-04-23 09:34:40 发布