在线程结束后运行Qt函数可以通过以下几种方式实现:
// 线程类
class MyThread : public QThread {
Q_OBJECT
public:
void run() override {
// 线程执行的代码
// ...
emit threadFinished(); // 发射线程结束信号
}
signals:
void threadFinished(); // 线程结束信号
};
// 主线程中的槽函数
void onThreadFinished() {
// 在线程结束后执行的代码
// ...
}
// 在主线程中创建线程对象并连接信号与槽
MyThread thread;
QObject::connect(&thread, &MyThread::threadFinished, &onThreadFinished);
thread.start();
// 线程类
class MyThread : public QThread {
Q_OBJECT
public:
void run() override {
// 线程执行的代码
// ...
}
};
// 主线程中的槽函数
void onThreadFinished() {
// 在线程结束后执行的代码
// ...
}
// 在主线程中创建线程对象并连接finished()信号与槽
MyThread thread;
QObject::connect(&thread, &QThread::finished, &onThreadFinished);
thread.start();
// 线程类
class MyThread : public QThread {
public:
void run() override {
// 线程执行的代码
// ...
}
};
// 在主线程中创建线程对象并启动线程
MyThread thread;
thread.start();
// 等待线程执行完毕
thread.wait();
// 在线程结束后执行需要的函数
onThreadFinished();
以上是几种在线程结束后运行Qt函数的方法,根据具体情况选择适合的方式。
领取专属 10元无门槛券
手把手带您无忧上云