QT多线程简单例子
在Qt中实现多线程,除了使用全局变量。还可以使用信号/槽机制。
以下例子使用信号/槽机制。
功能: 在主线程A界面上点击按钮,然后对应开起一个线程B。线程B往线程A发送一个字符串,线程A打印出来。
1、工程文件目录

2、thread.h 和thread.cpp
#ifndef THREAD_H
#define THREAD_H
#include<QThread>
#include<QString> class Thread : public QThread
{
Q_OBJECT
public:
Thread();
virtual void run();
void stop();
signals: void send(QString msg);
private: }; #endif // THREAD_H
#include "thread.h" Thread::Thread()
{ }
void Thread::run()
{
//发送一个信号给主线程
emit send(QString("thread"));
}
3、widget.h和widget.cpp
#ifndef WIDGET_H
#define WIDGET_H #include <QWidget>
#include"thread.h" namespace Ui {
class Widget;
} class Widget : public QWidget
{
Q_OBJECT public:
explicit Widget(QWidget *parent = );
~Widget(); void text();
public slots:
void accept(QString msg); private slots:
void on_pushButton_clicked(); private:
Ui::Widget *ui;
Thread thread;
}; #endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QObject::connect(&thread, SIGNAL(send(QString)), this, SLOT(accept(QString)));
// thread.start();
} Widget::~Widget()
{
delete ui;
}
void Widget::accept(QString msg)
{
qDebug()<<msg;
} void Widget::on_pushButton_clicked()
{
thread.start();
}
4、主函数
#include "widget.h"
#include <QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show(); return a.exec();
}
转自:https://blog.csdn.net/qq_33850438/article/details/78482935
QT多线程简单例子的更多相关文章
- python多线程简单例子
python多线程简单例子 作者:vpoet mail:vpoet_sir@163.com import thread def childthread(threadid): print "I ...
- C#多线程简单例子讲解
C#多线程简单例子讲解 标签: 多线程c#threadobjectcallbacktimer 分类: C#(7) 转载网址:http://www.knowsky.com/540518.html .NE ...
- java 多线程简单例子
实现线程的方式是一,继承Thread类,重写父类的run()方法 二,实现接口Runnable中的run()方法. 下面是简单的例子 例子1:银行存取钱问题 package com.direct.de ...
- Python Threading多线程简单例子
业务监控,多线程例子,实现每类个监控项的不同监控间隔. #coding=utf-8import sysimport pymysqlimport osfrom prometheus_client imp ...
- pyqt5多线程-简单例子
一.主要代码逻辑 from PyQt5 import QtWidgets, QtCore from testqt.TEST_QT_FROM import Ui_Dialog import sys fr ...
- C语言多线程的一个简单例子
多线程的一个简单例子: #include <stdio.h> #include <stdlib.h> #include <string.h> #include &l ...
- Qt 最简单的多线程方法QtConcurrent::run()
Qt 最简单的多线程方法QtConcurrent::run()(转载) 最近编写了一个软件,没有考虑多线程的问题,编好以后,软件在执行计算的时候,鼠标响应有时候会延迟,但是完全能用,考虑到后续随着计算 ...
- [转] Qt 多线程学习
Qt 多线程学习 转自:http://www.cnblogs.com/IT-BOY/p/3544220.html 最近的项目上用到了关于多线程的知识,自己也比较感兴趣,所以就拿了那本<C++ G ...
- Qt 多线程学习
最近的项目上用到了关于多线程的知识,自己也比较感兴趣,所以就拿了那本<C++ GUI Qt4 编程>来学习. 这本书的第14章是关于多线程的知识,使用的Qt版本是Qt4.x.在下用的是最新 ...
随机推荐
- [js]arguments属性
类数组 具有length属性的对象称为类数组 观察他的顺序 为什么能转换 for(let i=0;i<arr.length;i++){ console.log(arr[i]); } https: ...
- shell的函数返回值
1.默认function的返回值包含0 和1,执行成功,返回0,执行失败,返回1,可以采用$?来获取执行结果 2.函数如何返回字符串呢,可以采用echo函数 #!/bin/bashfunction t ...
- [LeetCode] 868. Binary Gap_Easy
Given a positive integer N, find and return the longest distance between two consecutive 1's in the ...
- js动态规划---最长子序列(lcs)
function LCS(wordX, wordY) { var m = wordX.length; var n = wordY.length; this.lcs = function(){ var ...
- Linux Performance 一文
http://www.brendangregg.com/linuxperf.html Brendan D. Gregg 专注 Linux performance & tuning 许多年,其博 ...
- (转载)Windows WMIC命令使用详解(附实例)
原文地址:http://www.jb51.net/article/49987.htm 第一次执行WMIC命令时,Windows首先要安装WMIC,然后显示出WMIC的命令行提示符.在WMIC命令行提示 ...
- Mac下android studio卡,居然这么解决了。。。。
一直修改build.app直接卡死.... 最后把网线拨了,居然不卡了.. 直接设置代理为127.0.0.1直接不卡了,无语了...
- 关于linux中SSH爆破总结
2.思路 (1)对root账号进行暴力破解 (2)使用中国姓名top1000作为用户名进行暴力破解 (3)使用top 10000 password字典进行密码破解 (4)利用掌握信息进行社工信息整理并 ...
- C# 去重处理字符大小写
本文展示了如何对集合去重并且处理大小写
- java outterLoop跳出多重循环用法以及详解
List<CommResultMsg> listresult=new ArrayList<CommResultMsg>(); outterLoop :for (int i = ...