import sys
from PyQt5.QtCore import *
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(493, 391)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
#创建兔子比赛窗口
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(20, 60, 211, 251))
self.textEdit.setObjectName("textEdit")
# 乌龟比赛窗口
self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit_2.setGeometry(QtCore.QRect(260, 60, 211, 251))
self.textEdit_2.setObjectName("textEdit_2")
#兔子标签
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(90, 30, 54, 12))
self.label.setObjectName("label")
# 乌龟标签
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(340, 40, 54, 12))
self.label_2.setObjectName("label_2")
#按钮
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(190, 330, 101, 31))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 493, 23))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.r=Rabbit()
self.r.sinOut.connect(self.rabbit) #创建兔子进程对象
self.t=Tortoise() #创建乌龟进程对象
self.t.sinOut.connect(self.tortoise)
self.pushButton.clicked.connect(self.start)
def start(self):
self.r.start()
self.t.start()
def rabbit(self,str):
self.textEdit.setPlainText(self.textEdit.toPlainText()+str)
def tortoise(self,str):
self.textEdit_2.setPlainText(self.textEdit_2.toPlainText()+str)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "兔子的比赛记录"))
self.label_2.setText(_translate("MainWindow", "乌龟的比赛记录"))
self.pushButton.setText(_translate("MainWindow", "开始比赛"))
class Rabbit(QThread):
sinOut=pyqtSignal(str) #自定义信号
def __init__(self):
super(Rabbit, self).__init__()
def run(self):
for i in range(1,11):
QThread.msleep(100)
self.sinOut.emit(f"\n 兔子跑了{str(i)}0米")
if i==9:
self.sinOut.emit(f"\n 在睡觉")
QThread.sleep(5)
if i==10:
self.sinOut.emit(f"\n 兔子到达终点")
class Tortoise(QThread):
sinOut=pyqtSignal(str)
def __init__(self):
super(Tortoise, self).__init__()
def run(self):
for i in range(1,11):
QThread.msleep(500)
self.sinOut.emit(f"\n 乌龟跑了{str(i)}0米")
if i ==10:
self.sinOut.emit(f"\n 乌龟到达终点")
if __name__=="__main__":
app=QtWidgets.QApplication(sys.argv)
MainWindow=QtWidgets.QMainWindow() #创建窗口
ui=Ui_MainWindow() #创建qt设计的窗口
ui.setupUi(MainWindow) #初始化设置窗口
MainWindow.show() #显示窗口
sys.exit(app.exec_()) #程序关闭时候退出进程运行效果

0 评论