38 lines
		
	
	
		
			747 B
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			747 B
		
	
	
	
		
			C++
		
	
	
	
	
	
|   | // main.cpp
 | ||
|  | #include <QtCore>
 | ||
|  | 
 | ||
|  | class Task : public QObject | ||
|  | { | ||
|  |     Q_OBJECT | ||
|  | public: | ||
|  |     Task(QObject *parent = 0) : QObject(parent) {} | ||
|  | 
 | ||
|  | public slots: | ||
|  |     void run() | ||
|  |     { | ||
|  |         // Do processing here
 | ||
|  | 
 | ||
|  |         emit finished(); | ||
|  |     } | ||
|  | 
 | ||
|  | signals: | ||
|  |     void finished(); | ||
|  | }; | ||
|  | 
 | ||
|  | #include "main.moc"
 | ||
|  | 
 | ||
|  | int main(int argc, char *argv[]) | ||
|  | { | ||
|  |     QCoreApplication a(argc, argv); | ||
|  | 
 | ||
|  |     // Task parented to the application so that it
 | ||
|  |     // will be deleted by the application.
 | ||
|  |     Task *task = new Task(&a); | ||
|  | 
 | ||
|  |     // This will cause the application to exit when
 | ||
|  |     // the task signals finished.
 | ||
|  |     QObject::connect(task, SIGNAL(finished()), &a, SLOT(quit())); | ||
|  | 
 | ||
|  |     // This will run the task from the application event loop.
 | ||
|  |     QTimer::singleShot(0, task, SLOT(run())); |