美文网首页
pyqt5 多线程QThread的使用

pyqt5 多线程QThread的使用

作者: 请叫我雯子小姐的小爷 | 来源:发表于2019-08-20 17:36 被阅读0次

    在使用pyqt5进行GUI编程的时候,网上能够找到的材料寥寥无几,往下这几篇文章是我自己的踩坑记录,如果有遇到一些棘手的问题,可以私聊我,一起探讨。

    首先,pyqt5中使用多线程需要自己重写QThread的run函数

    class Search_movie(QThread):
        display_signal = pyqtSignal(str) ##此处定义了一个信号,可以用来与主程序交互
        def __init__(self, name):
            super().__init__()  ## 继承QThread
            self.name = name ## 取出主程序传过来的参数name
    
        def run(self):
            result = self.name  ## 此处放你的函数功能,我以返回电影名为例
            self.display_signal.emit(result)
    

    这样,function就写好了,接下来就是在主程序中调用这个function的问题了,你可以在主程序中定义一个函数,如下

    def search(self, name):
        try:
            self.search_movieThread = Search_movie(name) ##调用多线程
            self.search_movieThread.display_signal.connect(self.movieresult_display)#此处是将display_signal的返回值交给你定义的功能使用
            self.search_movieThread.start()  ##启动多线程
        except:
            self.movieresult_display("网络不太好啊,加载不出来呀...")
    def movieresult_display(self, msm):##msm 是display_signal传回来的值
        QMessageBox.information(self, '搜索成功', '结果是{0}'.forma(msm)) ##放入你自己的功能,我这里以显示一个弹窗为例
    

    这样,多线程就写好了,你可以通过将search绑定到按钮或者其他信号槽来调用他。

    这篇文章也可以在微信公众号'微电脑'中查看,点击查看,同时,公众平台上也给出了我自己写的pyqt5程序(一个)的下载链接,可以用来搜索下载音乐,电影,下载百度文库文章,以及观看各个视频网站的VIP视频,同时也是一个8线程下载器。公众号发送'一个'即可获取。

    相关文章

      网友评论

          本文标题:pyqt5 多线程QThread的使用

          本文链接:https://www.haomeiwen.com/subject/mqxmsctx.html