readme.md

    ** class MatchThread(QThread): match_success = pyqtSignal(str) match_failed = pyqtSignal(str) def init(self, match_type, sfname, bdh): super().init() self.match_type = match_type self.sfname = sfname self.bdh = bdh

    def run(self):
        try:
            self.match_success.emit(self.match_type + "匹配成功")
        except:
            self.match_failed.emit("检查是否只选择一个文件路径。\n且列名为匹配内容。")

    ** 解析如何使用,使用的是多线程QThread,单独在主线程的之外的线程,pyqtSignal 进行的是一个信号的传递,emit是对一个信号的输出(使用 emit() 方法可以发出信号,通知连接的槽函数执行相应的操作。)。 match_type, sfname, bdh 是类的初始化的参数。

    ** def do_process(self, match_type): if self.sfname == '' or self.bdh is None: QMessageBox.warning(self, '警告', '请选择匹配文件并加载数据!') return else: self.match_thread = MatchThread(match_type, self.sfname, self.bdh) self.match_thread.match_success.connect(self.on_match_success) self.match_thread.match_failed.connect(self.on_match_failed) self.match_thread.start() def on_match_success(self, message): QMessageBox.information(self, '提示', message) def on_match_failed(self, message): QMessageBox.warning(self, '警告', message)

    ** connect在信号里面传入,将信号连接到槽函数。例如:sender.signal.connect(receiver.slot) sender 是发出信号的对象,signal 是信号名称,receiver 是接收信号的对象,slot 是槽函数名称。

    项目简介

    pyqt6信号与槽,叠加使用QThread的使用案例。并且解决不能QThread中的变量通过主线程进行共享变量。

    发行版本 1

    pyqt6

    全部发行版

    贡献者 3

    inscode @inscode
    6 6286e01d70b7ea73fee6b212 @6286e01d70b7ea73fee6b212
    6 64104061f23fda247c679fa8 @64104061f23fda247c679fa8

    开发语言

    • Python 98.7 %
    • Nix 1.3 %