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

如何部署asp网站百度浏览器官网在线使用

如何部署asp网站,百度浏览器官网在线使用,视觉品牌网站建设,网站专题框架怎么做信号槽中的函数重载 QT4的方式QT5的方式函数指针重载函数QT5信号函数重载解决方案 总结 QT4的方式 Qt4中声明槽函数必须要使用 slots 关键字, 不能省略。 信号函数: 槽函数: mainwondow: cpp文件: #include "mainwindow.h"…

信号槽中的函数重载

  • QT4的方式
  • QT5的方式
    • 函数指针重载函数
    • QT5信号函数重载
      • 解决方案
  • 总结

QT4的方式

Qt4中声明槽函数必须要使用 slots 关键字, 不能省略。

信号函数:
在这里插入图片描述
槽函数:
在这里插入图片描述
在这里插入图片描述
mainwondow:
在这里插入图片描述
在这里插入图片描述
cpp文件:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);tom = new me(this);teacher = new myteacher(this);//connect(ui->pushButtonqt4,&QPushButton::clicked,this,&MainWindow::sendMsg);//qt4的连接方式connect(ui->pushButtonqt4,SIGNAL(clicked()),this,SLOT(sendMsg()) );connect(tom,SIGNAL(sendMsg()),teacher,SLOT(receiveMsg()));connect(tom,SIGNAL(sendMsg(QString )),teacher,SLOT(receiveMsg(QString )));//qt5的连接方式}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::sendMsg()
{qDebug()<<"调用一次";//tom->sendMsg();QString s =" hello";tom->sendMsg(s);
}

调用有参的信号函数:
在这里插入图片描述
调用无参的信号函数:

在这里插入图片描述

在这里插入图片描述

QT5的方式

函数指针重载函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

QT5信号函数重载

信号函数和槽函数和之前QT4中是一样的。
信号函数;
在这里插入图片描述
槽函数:
在这里插入图片描述
在这里插入图片描述
关联方式:
在这里插入图片描述

报错如下:E:\Code\Qt\mySignalAndSlot3\mainwindow.cpp:20: error: no matching function for call to 'MainWindow::connect(me*&, <unresolved overloaded function type>, myteacher*&, <unresolved overloaded function type>)' connect(tom,&me::sendMsg,teacher,&myteacher::receiveMsg); ^

信号和槽都是通过函数名去关联函数的地址, 但是这个同名函数对应两块不同的地址, 一个带参, 一个不带参, 因此编译器就不知道去关联哪块地址了, 所以如果我们在这种时候通过以上方式进行信号槽连接, 编译器就会报错。

解决方案

可以通过定义函数指针的方式指定出函数的具体参数,这样就可以确定函数的具体地址了。
定义函数指针指向重载的某个信号或者槽函数,在connect()函数中将函数指针名字作为实参就可以了。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);tom = new me(this);teacher = new myteacher(this);//connect(ui->pushButtonqt4,&QPushButton::clicked,this,&MainWindow::sendMsg);//qt4的连接方式
//    connect(ui->pushButtonqt4,SIGNAL(clicked()),this,SLOT(sendMsg()) );
//    connect(tom,SIGNAL(sendMsg()),teacher,SLOT(receiveMsg()));
//    connect(tom,SIGNAL(sendMsg(QString )),teacher,SLOT(receiveMsg(QString )));//qt5的连接方式//函数指针void (me::*sendMsg1)() ;void (me::*sendMsg2)(QString s);void (myteacher::*receiveMsg1)();void (myteacher::*receiveMsg2)(QString s);sendMsg1 = &me::sendMsg;sendMsg2 = &me::sendMsg;receiveMsg1 = &myteacher::receiveMsg;receiveMsg2 = &myteacher::receiveMsg;connect(ui->pushButtonqt4,&QPushButton::clicked,this,&MainWindow::sendMsg);//connect(tom,&me::sendMsg,teacher,&myteacher::receiveMsg);//connect(tom,&me::sendMsg,teacher,&myteacher::receiveMsg);connect(tom,sendMsg1,teacher,receiveMsg1);connect(tom,sendMsg2,teacher,receiveMsg2);}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::sendMsg()
{qDebug()<<"调用一次";tom->sendMsg();QString s =" hello";tom->sendMsg(s);
}

在这里插入图片描述

总结

  1. Qt4的信号槽连接方式因为使用了宏函数, 宏函数对用户传递的信号槽不会做错误检测, 容易出bug
  2. Qt5的信号槽连接方式, 传递的是信号槽函数的地址, 编译器会做错误检测, 减少了bug的产生
  3. 当信号槽函数被重载之后, Qt4的信号槽连接方式不受影响
  4. 当信号槽函数被重载之后, Qt5中需要给被重载的信号或者槽定义函数指针
http://www.shuangfujiaoyu.com/news/63240.html

相关文章:

  • 网站模板商城长春网站建设方案托管
  • 网络营销的本质是seo如何去做优化
  • 网站文化建设百度竞价ocpc投放策略
  • 山东做网站肇庆网站制作软件
  • 电商网站建设与运营专业营销企业
  • 建立个人网站的方法网页设计制作网站模板图片
  • 三网合一网站系统在哪里可以发布自己的广告
  • 山西省新农村建设网站合肥百度快速排名优化
  • 付运费送东西的网站怎么做6网站怎么添加外链
  • 做视频网站需要什么资质seo代做
  • vue 企业网站模板网页查询
  • 做外贸在哪个网站好企业网络推广的方式有哪些
  • https网站怎么做百度推广怎么操作
  • 阿里云oss做网站seo关键词外包
  • 嘉兴专业定制网站制作企业爱网站关键词挖掘工具
  • 网站文章图片加标签加搜索引擎优化常用方法
  • 创建建站百度seo关键词优化方案
  • 郑州做商城网站公司棋牌软件制作开发多少钱
  • 用mediawiki做的网站企业网站推广优化
  • 网站群建设公司站长统计幸福宝下载
  • 做影视网站存储视频会侵权吗seo是什么专业
  • 在长沙做网站微信软文范例100字
  • 怎么学做网站优化网站排名工具
  • 德州 网站建设北京疫情消息1小时前
  • 国产做网站营销活动
  • app使用什么做的网站郑州好的seo外包公司
  • 东莞做营销型网站google应用商店
  • 网络服务大厅山东理工大学厦门seo厦门起梦
  • 微九州合作网站百度经验悬赏令
  • 津云天津最新疫情无线网络优化工程师