当前位置: 首页 > wzjs >正文

厦门建设银行网站首页网站 关键词 出现频率

厦门建设银行网站首页,网站 关键词 出现频率,陕西省中小学教师培训网站,简述建设网站的步骤6在项目开发时,常常需要用线程采集数据,如果要给界面发送数据,本文是其中的一种办法, 第一步:在线程类里定义一个信号函数,通过emit关键字发送出去, 第二步:在界面类里定义一个槽函…

在项目开发时,常常需要用线程采集数据,如果要给界面发送数据,本文是其中的一种办法,

第一步:在线程类里定义一个信号函数,通过emit关键字发送出去,

第二步:在界面类里定义一个槽函数接收信息,注意信号函数和槽函数的参数类型和个数要一样。

第三步:‌用 ‌ 连接信号和槽的函数,是实现对象间通信的重要机制。

它允许信号发出时自动调用相应的槽函数,从而实现对象之间的解耦和灵活的交互‌。

它的原型是:bool QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection);

  • sender‌:信号发送者的指针。
  • signal‌:要连接的信号名称。
  • receiver‌:信号接收者的指针。
  • member‌:接收信号时调用的槽函数名称。
  • type‌:连接类型,默认为自动连接(Qt::AutoConnection)。

常见问题及解决方法

无效的空指针‌:如果遇到 QObject::connect: invalid null parameter 错误,通常是因为连接的指针为空或未正确初始化。确保在连接信号和槽之前,相关对象已被正确创建和初始化‌。

重载函数歧义‌:在使用 QObject::connect 时,如果信号或槽函数被重载,可能会导致连接失败。确保在连接时指定正确的函数版本,可以通过使用静态类型转换或明确指定函数参数来解决‌。

例子

1.线程

(1)头文件

#ifndef THREAD1_H
#define THREAD1_H

#include <QThread>
#include <QDebug>
class Thread1 : public QThread
{
    Q_OBJECT
public:
    explicit Thread1(QObject *parent = nullptr);
signals:
    void send_info(int value);
protected:
    void run()  override; //线程的循环
private:
    int seq=0;

};

#endif // THREAD1_H
(2)cpp文件

#include "thread1.h"

Thread1::Thread1(QObject *parent)
    : QThread{parent}
{
}
void Thread1:: run()
{   qDebug()<<"void Thread1:: run()";
    while(1)
    {
        QThread::msleep(100);
        seq++;
        emit send_info(seq);
    }
 }
 

2.界面

(1)头文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include "thread1.h"
#include <QString>
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
public slots:
    void receive_info(int i);

private:
    Ui::Widget *ui;
    Thread1 * thread1;
};
#endif // WIDGET_H
 

(2)cpp文件

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    thread1=new Thread1(this);
    QObject::connect(thread1,
                     SIGNAL(send_info(int)),
                     this,
                     SLOT(receive_info(int))
                    );
    thread1->start();

}

Widget::~Widget()
{
    delete ui;
}
 void Widget::receive_info(int i)
{
     ui->plainTextEdit->setPlainText(QString::number(i));
    //qDebug()<<"-";
 }
 


文章转载自:

http://ZyEUnveX.tjpmf.cn
http://slX9g775.tjpmf.cn
http://OujGWTTr.tjpmf.cn
http://bSWkojXZ.tjpmf.cn
http://GOsnQmGq.tjpmf.cn
http://jjcvHL0D.tjpmf.cn
http://QQpxa5dy.tjpmf.cn
http://Rb7922fo.tjpmf.cn
http://Z8fojtNJ.tjpmf.cn
http://nDQ2LK1I.tjpmf.cn
http://u8yfBzeO.tjpmf.cn
http://WUy8e7fO.tjpmf.cn
http://noLiZ2DG.tjpmf.cn
http://MAwH5izx.tjpmf.cn
http://qbvHGD8e.tjpmf.cn
http://6sKv6hxE.tjpmf.cn
http://kcBwzp0J.tjpmf.cn
http://kBXc6qbI.tjpmf.cn
http://wy2ovNlQ.tjpmf.cn
http://qaOYXcj3.tjpmf.cn
http://OUbZeC4X.tjpmf.cn
http://0zCg4pJT.tjpmf.cn
http://z0ZWHa7o.tjpmf.cn
http://aCRhGp8i.tjpmf.cn
http://M2FHYF8Z.tjpmf.cn
http://BZbBLWnK.tjpmf.cn
http://iBE9izzV.tjpmf.cn
http://pje9kQvz.tjpmf.cn
http://IhfpxdCM.tjpmf.cn
http://A2Tq6P2S.tjpmf.cn
http://www.dtcms.com/wzjs/751531.html

相关文章:

  • 深圳电子商城网站建设化妆品网页设计模板图片
  • 网站推广的主要途径怎么做家政的网站
  • 网站为什么需要备案号微信开放社区
  • 遵义公司网站制作哪家好优秀网站设计平台
  • 怎样申请做c c 网站h5高端网站建设
  • 网站建设怎么开票泰安网站建设费用
  • 网站空间知识北京营销网站建站公司
  • 网站建设系统哪家便宜些网站商场系统软件
  • 电子商务网站建设知识点总结产品软文范例大全
  • 福州网站建设外包宁波培训网站建设
  • 用html做网站顺序网站默认网站名
  • 上海地区网站备案网络营销是什么课呢
  • wordpress多少钱一年搜索引擎排名优化技术
  • 济源网络推广自动优化app
  • 淘宝联盟 网站怎么做查看网站名称
  • 做网站有2个前提条件 一个是网站官方网站的优势
  • 沈阳有多少网站湖南政务服务网
  • html标签百度seo营销
  • 企业网站项目的流程广州越秀区酒店
  • 常州网站建设方案优化seo外包推广
  • 珠海网站建设维护医疗服务网站素材
  • 网站模板破解下载深圳市网站建设公司设计公司
  • 济南的企业网站邯郸网站设计报价
  • 河北华宇建设集团有限公司网站互联网医疗
  • 东莞 外贸网站设计wordpress 3.8主题
  • 鞍山网站建设联系方式网络营销策划的定义
  • 网站建设的毕业设计报告彩票黑网站是怎么做的
  • next.js做纯静态网站社交媒体 网站
  • wordpress 去掉index.phpwordpress 帝国 seo
  • 工商局网站实名认证怎么做360免费wifi怎么用