QT多线程通信EMIT

原创 2016年10月06日 17:06:29

头文件:

#ifndef HEAD_H

#define HEAD_H
#include <QWidget>
#include <QThread>
#include <QMessageBox>
#include <QApplication>
#include <QDebug>

class MyThread: public QThread
{
    Q_OBJECT
public:
    MyThread();
    void run();
signals:
    void send(QString s);
};

class MyWidget : public QWidget {
    Q_OBJECT
public:
    MyWidget (QWidget *parent = 0);
    ~MyWidget();
public slots:
    void receiveslot(QString s);
};
#endif // HEAD_H



CPP文件:#include "head.h"

MyThread::MyThread()
{
}
void MyThread::run()
{
    while(true)
    {
    sleep(5);
    emit send("This is the son thread");
    qDebug()<<"Thread is running!";
    }
//    exec();
    QThread::run();
}


MyWidget::MyWidget(QWidget *parent) :QWidget(parent)
{

}
MyWidget::~MyWidget()
{
}
void MyWidget::receiveslot(QString s)
{
QMessageBox::information(0,"Information",s);
}


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget w;
    w.show();
    MyThread *mth= new MyThread ;
    QObject::connect(mth,SIGNAL(send(QString)),&w,SLOT(receiveslot(QString)));
    mth->start();
    return a.exec();
}

PRO文件:

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11

TARGET = untitled35


TEMPLATE = app

SOURCES += main.cpp

HEADERS += \
    head.h




Qt5中通过信号槽传递多个参数

在Qt中的信号槽机制中,信号能参数超过6个则会
  • str999_cn
  • str999_cn
  • 2014年07月02日 21:47
  • 2703

初学Qt之--带参数的信号和槽的实现(入门级)

初次接触Qt,由于只有C语言的基础,弄起来很是头疼。下面这个Qt带参数的信号与槽的实例仅供入门之用,高手免观(Qt 4.4.0 实现) 废话不多说,直接上代码: [cpp]...
  • imxiangzi
  • imxiangzi
  • 2015年12月29日 10:31
  • 2005

QT信号和槽以结构体为参数传递复杂数据

QT信号和槽以结构体为参数传递复杂数据 转自 http://blog.csdn.net/hqyhqyhq/article/details/8025566‘ QT 的信...
  • skykingf
  • skykingf
  • 2013年01月31日 22:32
  • 8870

Qt中emit的作用

调用findPrevious或者findNext信号对应的槽函数,emit  把connect把信号和槽进行关联,emit某个信号,就相当于调用这个信号connect时所关联的槽函数,如下边的例程所示...
  • haifengid
  • haifengid
  • 2016年06月25日 07:49
  • 1354

Qt emit的使用

假设现在我定义了一个类A,现在想在A的一个函数void A::function1()当中的结尾处emit一个信号signal1(),然后利用这个信号触发另一个类B进行某项操作void B::funct...
  • guochang7511
  • guochang7511
  • 2014年04月14日 14:16
  • 3355

Qt关键字讲解,emit,SIGNAL,SLOT

Qt中的类库有接近一半是从基类QObject上继承下来,信号与反应槽(signals/slot)机制就是用来在QObject类或其子类间通讯的方法。作为一种通用的处理机制,信号与反应槽非常灵活,可以携...
  • love4Mario
  • love4Mario
  • 2017年05月09日 14:33
  • 826

QT多线程简单实现及变量传递

QT自定义信号与槽 自定义信号与槽 Qt多线程简单实现 多线程间变量传递
  • hyw11002233
  • hyw11002233
  • 2016年11月15日 10:49
  • 4425

Qt5 emit总结

//Qt5 emit的使用//通过emit我们可以限定发送信号的时机//传递信号和槽的参数//及改变信号的状态 //通过网上的说明自己添加了自己总结的特性要源文件可q我 #include #i...
  • RGBMarco
  • RGBMarco
  • 2017年03月20日 16:22
  • 730

信号(Signal)与槽(Slot)-Qt中的典型机制

因为下一篇关于Boost的文章会涉及到事件处理的问题,里面用的是信号和槽的机制,先拿Qt里的这个机制预研一下。诶,Boost这是够厉害的,什么先进就包含什么!要知道我以前一直以为这是Qt的专利呢。当然...
  • wjeson
  • wjeson
  • 2012年07月02日 16:41
  • 4168

多线程halcon调用实现

1、应用背景 在实际应用中,程序往往需要既能完成图像的连续抓取显示(监视功能),又需要能实现单帧抓取做图像处理。 实际上连续抓取在实现上就是循环单次抓取,只是需要单独开辟线程来实现。 2...
  • surui_555
  • surui_555
  • 2015年05月21日 14:39
  • 3014
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QT多线程通信EMIT
举报原因:
原因补充:

(最多只允许输入30个字)