LINUX.ORG.RU

[Qt]разобратся с потоками

 


0

0

Пытаюсь поработать с потоками. В итоге получил ситуацию, когда программа не завершается после закрытия всех окон. Для тестирования накидал такой вот каркас:

main.cpp

#include <QtGui>
#include "someThread.h"

int main(int argc,char** argv)
{
	QApplication app(argc,argv);
	QPushButton mb;
	mb.setText("\n\ttest button!\t\n");
	mb.show();

	someThread smT;
	smT.run();
	smT.exit();

	app.exec();
}

someThread.h

#ifndef SOMETHREAD_H
#define SOMETHREAD_H
#include <QThread>

class someThread: public QThread
{
Q_OBJECT
	public:
		void run();
};




#endif //SOMETHREAD_H

someThread.cpp

#include "someThread.h"


void someThread::run()
{
	exec();
}

Запускаю программу из консоли. Закрываю окно с кнопкой, но приглашение командной строки не появляется.

Помогите разобраться, пожалуйста.

Всем заранее спасибо.

★★★★★

Ответ на: комментарий от trex6

Еще один вопрос возник.
Если я завершаю поток через QThread::exit() - все нормально.
Но если подцепляю завершения потока через слот quit() - опять возникает ошибка.
ЧЯДНТ?

trex6 ★★★★★
() автор топика
Ответ на: комментарий от alex_custov

Заменил
smT.exit();
на
QObject::connect(&mb,SIGNAL(clicked()),&smT,SLOT(quit()));

trex6 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.