吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1947|回复: 5
收起左侧

[学习记录] PyQt学习笔记

[复制链接]
Cool_Breeze 发表于 2021-8-8 16:24
功能强大的 QT UI.png
[Python] 纯文本查看 复制代码
# -*- coding : utf-8 -*-

from PySide2.QtWidgets import QApplication
from PySide2.QtUiTools import QUiLoader
from PySide2.QtCore import QObject, QThread, Signal, Slot

import time
import sys

# 指定网址爬虫
from zg163 import access_space

class WindowMain:
    
    clearTask = []
    
    def __init__(self):
        self.ui = QUiLoader().load('main.ui') # 解析ui文件 生成窗口对象
        
        self.ui.StartpushButton.clicked.connect(self.StartpushButtonHandler) # 信号与槽连接
        
        self.taskZG163 = connectZG163()
        
        self.taskZG163.progressBarSignal.connect(self.updateProgressBar) # 信号与槽连接
        self.taskZG163.infoSignal.connect(self.updateInformationTextBrowser)
        self.taskZG163.errorSignal.connect(self.updateErrorTextBrowser)
        self.taskZG163.passSignal.connect(self.updatePassTextBrowser)
        self.clearTask.append(self.taskZG163)
        
        # 当前时间
        self.taskUpdateStatusTime = updateStatusTime()
        self.clearTask.append(self.taskUpdateStatusTime)
        self.taskUpdateStatusTime.strTimeSignal.connect(self.statusbarUpdate) # 信号与槽连接
        self.taskUpdateStatusTime.start()
    
    def statusbarUpdate(self, strTime):
        self.ui.statusbar.showMessage(strTime)

    def StartpushButtonHandler(self):
        ''' 任务开始 '''
        self.taskZG163.start()
    
    def updateProgressBar(self, number):
        self.ui.progressBar.setValue(number)
    
    def updateInformationTextBrowser(self, text):
        self.ui.informationTextBrowser.append(text)    
    
    def updateErrorTextBrowser(self, text):
        self.ui.errorTextBrowser.append(text)    
    
    def updatePassTextBrowser(self, text):
        self.ui.passTextBrowser.append(text)

    def closeEvent(self, event):
        print(event)


class updateStatusTime(QThread):
    
    # 信号
    strTimeSignal = Signal(str)
    
    def __init__(self):
        super().__init__()
        
    def run(self):
        while True:
            self.strTimeSignal.emit(time.strftime("%Y-%m-%d %H:%M:%S"))
            time.sleep(0.5)


class connectZG163(QThread):
    
    # 信号
    progressBarSignal = Signal(int)
    infoSignal = Signal(str)
    errorSignal = Signal(str)
    passSignal = Signal(str)
    
    def __init__(self):
        super().__init__()
    
    def run(self):
        task = access_space() # 获取网址信息
        for info in task.taskRun():
            self.progressBarSignal.emit(info[0])
            flag = info[2]
            # ("1: information", "2: error", "3, pass")
            if flag == 1:
                self.infoSignal.emit(info[1])
            elif flag == 2:
                self.errorSignal.emit(info[1])
            else:
                self.passSignal.emit(info[1])
        
# 开始运行
app = QApplication(sys.argv)
winMain = WindowMain()
winMain.ui.show()
app.exec_()

# 清理线程
for task in winMain.clearTask:
    task.terminate()

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
yuehanoo + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

daolaji 发表于 2021-8-8 16:33
我来学习一下
Wapj_Wolf 发表于 2021-8-8 18:55
gprboy 发表于 2021-8-8 20:27
Mr-Golden-Week 发表于 2021-8-8 20:38
前来学习一下。
删掉丶关于n1 发表于 2021-8-10 18:52
收藏了 学习学习!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 23:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表