标签:des style blog http ar io color 使用 sp
QT中的线程操作
T19Process.pro |
SOURCES += \ main.cpp
CONFIG += C++11 |
main.cpp |
#include <QCoreApplication>
#include <QProcess>
#include <QDebug>
int main(int argc, char** argv)
{
QCoreApplication app(argc, argv);
QProcess process;
// process.start("/home/xuegl/T0718/build-T18Database-Desktop-Debug/T18Database");
process.start("ssh root@42.121.13.248");
// process.start("ssh", QStringList() << "root@42.121.13.248" << "aa" << "bbb");
// process.write("1\n", 2);
process.waitForFinished();
// process.waitForFinished();
qDebug() << process.readAll();
// qDebug() << process.exitCode();
return app.exec();
}
|
多线程(可以通过moveToThread(QThread *)的方法指定给指定的线程)
新建项目T20Thread,项目代码如下:
T20Thread.pro |
HEADERS += \ Worker.h \ MyThread.h
SOURCES += \ Worker.cpp \ MyThread.cpp \ main.cpp |
Worker.h |
#ifndef WORKER_H #define WORKER_H
#include <QObject> #include <QThread> //要开启线程的时候需要使用头文件<QThread> #include <QDebug> class Worker : public QObject { Q_OBJECT public: explicit Worker(QObject *parent = 0);
QThread _thread;
bool event(QEvent *ev) { //通过QThread::currentThread()可以获得当前线程信息 qDebug() << "event:" << QThread::currentThread(); return QObject::event(ev); } signals:
public slots: void doWork() { qDebug() << QThread::currentThread(); } };
#endif // WORKER_H |
Worker.cpp |
#include "Worker.h"
Worker::Worker(QObject *parent) : QObject(parent) { //this->moveToThread(&_thread); _thread.start(); connect(&_thread, SIGNAL(finished()), this, SLOT(deleteLater())); } |
MyThread.h |
#ifndef MYTHREAD_H #define MYTHREAD_H
#include <QThread> #include <QDebug> class MyThread : public QThread { Q_OBJECT public: explicit MyThread(QObject *parent = 0);
void foo() { qDebug() << QThread::currentThread(); }
void run() { foo(); qDebug() << "thread is run"; }
signals:
public slots:
};
#endif // MYTHREAD_H |
MyThread.cpp |
#include "mythread.h"
MyThread::MyThread(QObject *parent) : QThread(parent) { } |
main.cpp |
#include <QCoreApplication> #include "mythread.h" #include "worker.h" #include <QTimer> int main(int argc, char* argv[]) { QCoreApplication app(argc, argv); #if 0 MyThread thread; thread.start();
thread.foo(); #endif
qDebug() << "main thread is"<<QThread::currentThread(); Worker* worker = new Worker(); QTimer* timer = new QTimer; //worker->moveToThread(&thread);
QObject::connect(timer, SIGNAL(timeout()), worker, SLOT(doWork())); timer->setInterval(1000); timer->start();
return app.exec(); } |
运行结果:
|
标签:des style blog http ar io color 使用 sp
原文地址:http://blog.csdn.net/tototuzuoquan/article/details/41966193