相關(guān)推薦
您可能對(duì)下面課程感興趣
Python上位機(jī)開(kāi)發(fā)教程

105小節(jié)已有9495人學(xué)過(guò)

Python上位機(jī)開(kāi)發(fā)多線程二
發(fā)布時(shí)間:2024-11-20 10:02 [ 我要自學(xué)網(wǎng)原創(chuàng) ] 發(fā)布人: 快樂(lè)小女 閱讀: 199

import time
from PySide6.QtWidgets import *
from PySide6.QtCore import *
from PySide6.QtGui import *
from page import Ui_Form
import threading


def task(ui):
    a=0
    while ui.isrunning:

        if ui.pausing:
            time.sleep(0.02)
            continue


        ui.data_signal.emit(a)
        time.sleep(0.2)
        a+=1
        if a>100:
            break

    ui.isrunning = True


class Window(QWidget, Ui_Form):
    data_signal = Signal(int)
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        self.t:threading.Thread = None
        self.data_signal.connect(self.change_value)
        self.isrunning = True
        self.pausing = False

    def onBtnStartClick(self):
        if self.t is not None and self.t.is_alive():return
        self.t = threading.Thread(target=task,args=(self,),daemon=True)
        self.t.start()


    def onBtnStopClick(self):
        self.isrunning = False


    def onBtnPauseClick(self):
        self.pausing =True


    def onBtnResumeClick(self):
        self.pausing = False

    def change_value(self,val:int):
        self.progressBar.setValue(val)


if __name__ == '__main__':
    import sys

    app = QApplication(sys.argv)
    win = Window()
    win.show()
    sys.exit(app.exec())

Python上位機(jī)開(kāi)發(fā)教程
我要自學(xué)網(wǎng)商城 ¥80 元
進(jìn)入購(gòu)買
文章評(píng)論
0 條評(píng)論 按熱度排序 按時(shí)間排序 /350
添加表情
遵守中華人民共和國(guó)的各項(xiàng)道德法規(guī),
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭(zhēng)議評(píng)論。
參與本評(píng)論即表明您已經(jīng)閱讀并接受
上述條款。
V
特惠充值
聯(lián)系客服
APP下載
官方微信
返回頂部
相關(guān)推薦
您可能對(duì)下面課程感興趣
Python上位機(jī)開(kāi)發(fā)教程

105小節(jié)已有9495人學(xué)過(guò)

分類選擇:
電腦辦公 平面設(shè)計(jì) 室內(nèi)設(shè)計(jì) 室外設(shè)計(jì) 機(jī)械設(shè)計(jì) 工業(yè)自動(dòng)化 影視動(dòng)畫 程序開(kāi)發(fā) 網(wǎng)頁(yè)設(shè)計(jì) 會(huì)計(jì)課程 興趣成長(zhǎng) AIGC