相關推薦
您可能對下面課程感興趣
Python上位機開發(fā)教程

105小節(jié)已有4814人學過

Python上位機開發(fā)多線程三
發(fā)布時間:2024-11-20 10:02 [ 我要自學網原創(chuàng) ] 發(fā)布人: 快樂小女 閱讀: 60

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


class WorkThread(Thread):
    def __init__(self, win):
        super().__init__()
        self.running = True
        self.pausing = False
        self.win: Window = win

    def run(self):
        a = 0
        while self.running:
            if self.pausing:
                time.sleep(0.01)
                continue

            self.win.data_singal.emit(a)
            time.sleep(0.2)
            a += 1
            if a > 100: break

        self.running = True

    def stop(self):
        self.running = False

    def pause(self):
        self.pausing = True

    def resume(self):
        self.pausing = False


class Window(QWidget, Ui_Form):
    data_singal = Signal(int)

    def __init__(self):
        super().__init__()
        self.setupUi(self)

        self.data_singal.connect(self.change_value)
        self.t: threading.Thread = None

    def onBtnStartClick(self):
        if self.t is not None and self.t.is_alive(): return
        self.t = WorkThread(self)
        # self.t.daemon= True
        self.t.start()

    def onBtnStopClick(self):
        if self.t is not None and self.t.is_alive():
            self.t.stop()

    def onBtnPauseClick(self):
        if self.t is not None and self.t.is_alive():
            self.t.pause()

    def onBtnResumeClick(self):
        if self.t is not None and self.t.is_alive():
            self.t.resume()

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

    def closeEvent(self, event):
        if self.t is not None and self.t.is_alive():
            self.t.stop()
            self.t.join()
            self.t = None


if __name__ == '__main__':
    import sys

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

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

105小節(jié)已有4814人學過

分類選擇:
電腦辦公 平面設計 室內設計 室外設計 機械設計 工業(yè)自動化 影視動畫 程序開發(fā) 網頁設計 會計課程 興趣成長 AIGC