Linux下Qt多线程编程_第1页
Linux下Qt多线程编程_第2页
Linux下Qt多线程编程_第3页
Linux下Qt多线程编程_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Linux 下 Qt 多线程编程作者:武汉华嵌技术部以下和大家分享 Linux 平台下 Qt 两种多线程编程的方式: 1、 使用 Linux 平台下的线程函数。以下是给出的代码片段: /此处为连接信号和槽,通过 Qt 界面中两按钮来控制两个槽 函数connect(pthred1start, SIGNAL(clicked(), this,SLOT(pthread1start();connect(pthred1stop, SIGNAL(clicked(), this,SLOT(pthread1stop();/*linux平台下的线程*/此函数为线程处理函数 void *mythread(void

2、*arg)Qt1 *tt = (Qt1 *)arg; / 接收 qt1 的 this 指针 tt->i = 0;while(1)(tt->i)+;qDebug()<<i is : <<tt->i;/通过接收来的指针操作 qt1 的界面 tt->LeFirst->setText(QString:number(tt->i); sleep(1); void Qt1:pthread1start()/在槽函数中通过 Linux 下的线程函数来创建一个线程, 并且 /把 Qt1 中的 this 指针传到线程函数中int ret = pthread

3、_create(&ptid, NULL, mythread, (void *)this);if(ret != 0) printf(wrongn); void Qt1:pthread1stop()/关闭线程 pthread_cancel(ptid); 2 、使用 QT 自带的线程类。以下是给出的代码片段: 要使用 QT 自带的线程类,来实现多线程编程,需要子类化 QThread,并且重新实现它的run()函数就可以了。如下所示: /子类化 QThreadclass myThread: public QThreadQ_OBJECTpublic: myThread(QWidget *pare

4、nt = 0);myThread();void run();Qt1 *tt;int i;/* qt自带线程*/子类化 QThread 的构造函数的实现,并且对成员变量进行 初始化myThread:myThread(QWidget *parent)i = 0;tt = (Qt1 *)parent;/ 保存 qt1 对象的 this 指针的值 myThread:myThread()/*qt 自带线程 start 后,会自动执行 run 函数 */重新实现 QThread 的 run() 函数 void myThread:run() while(1)(tt->i)+; qDebug()<

5、<i is : <<(tt->i);/通过接收的 this 指针的值,来操作 qt1 对象的界面 tt->LeFirst->setText(QString:number(tt->i); sleep(1); 以上是实现了自己的线程类,然后就如何使用了,使用如 下:在界面的构造函数中有如下代码: /生成一个自己实现的 qt 中的线程类对象 thread = new myThread(this); /通过两个控件来控制线程的开始和结束 connect(qthreadstart, SIGNAL(clicked(), this, SLOT(pthread2start();connect(qthreadstop, SIGNAL(clicked(), this,SLOT(pthread2stop();void Qt1:pthread2start()thread->start();/ 启动 qt 线程 void Qt1:p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论