PYQT5自定义信号

from threading import Thread

import psutil
from PySide2.QtCore import QFile, QObject, Signal
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication
from PySide2.examples.widgets.threads.thread_signals import MySignals

from aa import aa


class MySignals(QObject):
    text_print = Signal(str)


class UIUI:
    def __init__(self):
        q_file = QFile("cs.ui")
        q_file.open(QFile.ReadOnly)
        q_file.close()

        self.ui = QUiLoader().load(q_file)
        # self.ui.s_pushButton.clicked.connect(self.display)

        # 开一个信号的显示槽
        self.ui.s_pushButton.clicked.connect(self.crawl_click)
        self.ms = MySignals()
        self.ms.text_print.connect(self.printToGui)

    def printToGui(self, text):
        self.ui.r_textBrowser.append(str(text))

    # def display(self):
    #     self.ui.r_textBrowser.currentText()

    # def run(sys_combobox):
    #     # 按钮禁用
    #     self.ui.start_pushButton.setEnabled(False)
    #     # 调用耗时程序
    #     self.ui.start_pushButton.setEnabled(True)
    #
    # t = Thread(target=run)
    # t.start()
    # 这段可以在其他文件里面里面显示
    def crawl_click(self):
        def run():
            aa(self.ms.text_print).a1()
            # self.ms.text_print.emit("%s" % (1,))

        t = Thread(target=run)
        t.start()


if __name__ == '__main__':
    app = QApplication([])
    uiui = UIUI()
    uiui.ui.show()
    app.exec_()

import time


class aa:
    def __init__(self, signal):
        self.signal = signal

    def a1(self):
        for i in range(10):
            time.sleep(1)
            self.signal.emit("%s" % (i,))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值