QT 线程

来源:互联网 发布:win7桌面显示网络图标 编辑:程序博客网 时间:2024/06/01 07:58

多线程可以防止ui界面卡死的情况


class WorkerThread : public QThread
{
    Q_OBJECT
public:
    void set_ui(Ui::MainWindow *m);
    void run() Q_DECL_OVERRIDE;    
signals:
    void thread_signal(unsigned int table, unsigned int row);
private:
    Ui::MainWindow *my_ui;
};
线程的定义 编译时要重新qmake


 ui->runButton->setText("停止");  改变按键上显示的字符
p->start();    //线程开始
p->terminate();      //线程退出
p->isRunning()  //线程是否为运行状态
connect(p, SIGNAL(thread_signal(unsigned int, unsigned int)), this, SLOT(thread_slot(unsigned int, unsigned int)), Qt::QueuedConnection);
线程可以自定义信号和其他线程之间连接。这是线程信号与槽的链接方式。thread_slot 可以是其他线程的槽函数。可以由其他线程去执行
线程执行的内容在run函数中,调用start函数时,会自动调用run函数。

0 0