我有一种奇怪的情况,其中有一个工作线程完成它的工作,然后发出一个信号来回调GUI线程来关闭对话框。是否有人可以解释为什么这个工程:在QT应用程序中没有接收信号的插槽
的WorkerThread:
[Header]
signals:
void writeComplete(void);
[Source]
void startWorkerThread()
{
// do some stuff in boost::thread
emit writeComplete();
}
主窗口的子类:
burnDialog = new QProgressDialog("Writing to disc", "", 0, 0);
burnDialog ->setCancelButton(0);
QWidget::connect(discHandler.get(), SIGNAL(writeComplete()), burnDialog, SLOT(close()));
QWidget::connect(discHandler.get(), SIGNAL(writeComplete()), this, SLOT(close()));
burnDialog->open();
discHandler->startWorkerThread();
但这并不:
主窗口的子类: [标题] 公众插槽: void closeWithDialog(void);
[Source]
burnDialog = new QProgressDialog("Writing to disc", "", 0, 0);
QWidget::connect(discHandler.get(), SIGNAL(writeComplete()), this, SLOT(closeWithDialog()));
burnDialog ->setCancelButton(0);
burnDialog->open();
discHandler->startWorkerThread();
void closeWithDialog()
{
burnDialog->close();
close();
}
是否[此答案](http://stackoverflow.com/a/2074064/894321)解决您的问题? – alexisdm