微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PyQT5:在继续功能之前等待信号

如何解决PyQT5:在继续功能之前等待信号

使用PyQt5作为程序的接口,我编写了一个通过单击按钮激活的函数,该函数(除其他外)激活另一个函数,该函数在第一个函数执行其工作时激活在其他对象上工作的线程。 我的问题是,该函数的完成速度比线程快得多,并且我希望程序在继续运行之前等待线程结束,最好使用超时选项。 我知道PyQT5中有信号,并且我知道如何基于给定的信号触发事件,但是,我将如何让程序等待信号出现?

非常感谢您的帮助:)

我想要的示例代码

class MyClass():
    def __init__():
        self.first_function()
        ....
        ....

    def first_function(self):
        ....
        ....
        self.second_function()
        wait_for_signal(timeout=30)

    def second_function(self):
        ....
        t = threading.Thread(target=self.thread_func)
        t.start()
        ....
        ....

    def thread_func(self):
        ....
        ....
        signal.emit()

解决方法

我不确定您到底需要什么,但这是一个函数示例,该函数在开始块信号中并最终激活它们

def show_acte_general(self):
        
        self.comboBox_2.blockSignals(True)
        self.comboBox_2.clear()
        self.comboBox_4.blockSignals(True)
        self.comboBox_4.clear()
        
        self.connection = psycopg2.connect(user="postgres",password="password",host="localhost",database="database")
        self.cur = self.connection.cursor()
        self.cur.execute('''SELECT items FROM read ORDER BY items ASC;''')
        data = self.cur.fetchall()

        for actes in data :
            self.comboBox_2.addItem(actes[0])
            self.comboBox_2.blockSignals(False)
            
            self.comboBox_4.addItem(actes[0])
            self.comboBox_4.blockSignals(False)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。