qt 启动另外一个线程调用函数
时间: 2023-11-30 13:04:37 浏览: 107
TestMoreThread_多线程_
在Qt中启动另外一个线程可以使用Qt提供的QThread类。具体的操作步骤如下:
1. 定义一个继承自QThread的类,重写它的run()函数,run()函数中编写要执行的代码。
```
class MyThread : public QThread
{
public:
void run() override
{
//执行要在新线程中执行的函数
emit mySignal();
}
signals:
void mySignal();
};
```
2. 在主线程中创建MyThread对象,连接信号和槽,启动线程。
```
MyThread *thread = new MyThread();
connect(thread, &MyThread::mySignal, this, &MyClass::mySlot);
thread->start();
```
在这里,mySlot()是在主线程中执行的槽函数。当MyThread对象中的run()函数执行到emit mySignal()语句时,会发射mySignal()信号,从而执行mySlot()函数。
注意:在MyThread类中不能直接操作主线程中的UI控件,因为UI控件只能在主线程中操作。如果需要在新线程中操作UI控件,可以通过信号和槽机制来实现。
阅读全文