从QThread显示QMessageBox

时间:2010-11-28 22:27:42

标签: c++ qt qt4

我想从单独的线程中显示一个消息框,但是,我收到此错误:

QThread: Destroyed while thread is still running

任何人都可以解释如何从线程中显示消息框吗?

1 个答案:

答案 0 :(得分:3)

发出信号。由于您无法在Qthread中执行UI内容,而是将您的消息作为信号的参数发送。

你的qthread中的

信号decalaration:

signals:
  void write2SysStatus(QString theMessage);

从qthread发出信号:

emit write2SysStatus("Some status");

QMainWindow中的插槽声明/定义:

public slots:
  void eWriteLine ( QString theMessage ){
       //this is where you use you message box.
  }

连接插槽和信号:

connect(pFPSengine, SIGNAL(write2SysStatus(QString)), this,SLOT(eWriteLine(QString)));