1.添加一个自定义类,继承QThread类,在类中添加MainWindow类型的指针MainWindow *w
定义信号和槽函数,线程运行时发出信号,槽函数中调用MainWindow类内的控件操作函数。
myThread.h:
class myThread : public QThread{
public:
myThread(MainWindow *win);
private:
MainWindow *w;
signals:
void bar_sig();
public slots:
void bar_slot();
protected:
void run();
}
myThread.cpp:
myThread::myThread(MainWindow *win){
this->w = win;
//连接信号和槽函数
connect(this,SIGNAL(bar_sig()),this,SLOT(bar_slot()));
}
void myThread::run(){
while(1){
//发出信号,此时调用槽函数
emit bar_sig();
msleep(100);
}
}
void myThread::bar_slot(){
//在槽函数中调用MainWindow类的控件操作函数
w->bar_incr();
}
2.在MainWindow类中定义用于操作窗口内控件的函数,此处以操作ProgressBar为例
MainWindow.h:
class MainWindo