问题
I want to display a message box from a separate thread, however, I get this error:
QThread: Destroyed while thread is still running
Can anyone explain how to display a message box from a thread?
回答1:
Emit a signal. Since you cannot do UI stuff in a Qthread, instead send your message as an argument of your signal.
signal decalaration in your qthread:
signals:
void write2SysStatus(QString theMessage);
emitting the signal from the qthread:
emit write2SysStatus("Some status");
slot declaration/definition in QMainWindow:
public slots:
void eWriteLine ( QString theMessage ){
//this is where you use you message box.
}
connecting of the slot and signal:
connect(pFPSengine, SIGNAL(write2SysStatus(QString)), this,SLOT(eWriteLine(QString)));
来源:https://stackoverflow.com/questions/4299493/display-a-qmessagebox-from-a-qthread