Python 中断Qt中的进程以更新GUI

Python 中断Qt中的进程以更新GUI,python,qt,user-interface,python-2.4,Python,Qt,User Interface,Python 2.4,我正在使用Python2.4.3和Qt设计器制作GUI。当我按下其中一个按钮时,它会熄灭并执行几个串行过程。在每个过程之后,我想通过向GUI输出文本来更新用户,但是,在我完成所有过程之前,文本不会显示出来。我已经看到了关于推荐processEvents()的相同问题的其他问题。愚蠢的问题,我必须导入什么模块才能获得processEvents()函数,使其工作,还是有一个用于Python 2.4.3的模块?我在一台Red Hat Linux机器上运行。谢谢。 我在C++中工作,这个答案还没有准备好

我正在使用Python2.4.3和Qt设计器制作GUI。当我按下其中一个按钮时,它会熄灭并执行几个串行过程。在每个过程之后,我想通过向GUI输出文本来更新用户,但是,在我完成所有过程之前,文本不会显示出来。我已经看到了关于推荐processEvents()的相同问题的其他问题。愚蠢的问题,我必须导入什么模块才能获得processEvents()函数,使其工作,还是有一个用于Python 2.4.3的模块?我在一台Red Hat Linux机器上运行。谢谢。

我在C++中工作,这个答案还没有准备好用,但是我解决了我的类似问题,编写了一个小助手,从循环

调用。
#include <QTimer>
#include <QEventLoop>

inline void do_events(int delay = 1) {
    QEventLoop lp;
    QTimer::singleShot(delay, &lp, SLOT(quit()));
    lp.exec();
}
#包括
#包括
内联void do_事件(int delay=1){
QEventLoop lp;
QTimer::singleShot(延迟,&lp,插槽(quit());
lp.exec();
}

这允许Qt处理其事件。它的名字是对VB时代的危险怀念…

Qt.qApp
QApplication.instance()
产生
QApplication
对象,该对象有一个可以调用的
processEvents

串行进程应该在另一个线程中完成
processEvents()
是本例中的一种解决方法。您最好将每个进程拆分,并让它们通过插槽相互触发,以便事件循环可以在两者之间运行,或者使用另一个线程来表示gui线程棘轮怪怪-我喜欢这个想法。我只是尝试了一下,但我不知道如何将插槽连接在一起;因此,我创建了3个插槽,并在按下run按钮时触发所有插槽。幸运的是,它按照QT设计器中列出的顺序运行了所有三个。但是,直到最后一个GUI完成后,它才更新GUI,因此它无法工作。所以我想我仍然需要知道如何在另一个插槽完成后启动插槽。谢谢,这很有效。我在例程的顶部放了一个“import qt”,然后在我想打印的每个项目后面放上“qt.qApp.processEvents()”。@user3005501:很高兴这有帮助!在Stack Overflow(堆栈溢出)上,我们希望您将答案标记为已接受,如果它解决了您的问题,并且您认为有帮助且信息丰富的向上投票答案。