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

做动态图片的网站北京seo相关

做动态图片的网站,北京seo相关,企业网站制作的市场,省政府网站管理与建设一、信号与槽的理解1、什么是信号和槽?在许多GUI工具中,每一个窗口部件都有一个回调函数用于响应他们能够触发的动作,这些回调函数通常是一个指向某个函数的指针。指针是一个相对麻烦的概念,在Qt中信号与槽取代了这些凌乱的函数指…
一、信号与槽的理解
1、什么是信号和槽?
在许多GUI工具中,每一个窗口部件都有一个回调函数用于响应他们能够触发的动作,这些回调函数通常是一个指向某个函数的指针。指针是一个相对麻烦的概念,在Qt中信号与槽取代了这些凌乱的函数指针,使得程序的编写更为简单。

当一个对象发生改变的时候,信号就由这个对象发射出去,这就是这个对象要做的全部事情,它并不知道另一端是谁在接收信号,这个过程就是真正的信息封装,实现了绝对的安全。

槽用于接收信号,它们是普通的c++成员函数,它们并不知道是否有信号与自己关联,而且对象并不了解通信机制

在Qt中,当点击一个按钮的时候,这个按钮会发出一个信号,而这个信号会传递给另外一个对象,接收到信号的对象会产生相应的动作,这就是信号与槽的机制

2、信号与槽的关联
1)、信号与槽通过
QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::Connection type=Qt::AutoCompatConnection)产生关联
sender,信号的发送者
signal,待发送的信号
receiver,信号的接收者
method,槽函数
type,信号与槽的关联方式

2)、type有3种类型
Qt::DirectConnection,信号发送后立即传递给槽,只有槽函数执行完毕返回之后,发送信号"emit"之后的代码才能被执行
Qt::QueueConnection,信号发送后排队,直到事件循环有能力将它传递给槽,而不管槽函数有没有执行,发送信号"emit"之后的代码
立即被执行
Qt::AutoCompatConnection,如果信号和槽在同一个线程,等同于Qt::DirectConnection;如果信号和槽不在同一个线程,那么等同于
Qt::QueueConnection。




二、信号与槽的实例
1、信号
当对象的内部状态发生改变,信号就被发射,只有定义了一个信号的类和它的子类才能发射这个信号。例如QPushButton类中就预定义了clicked信号,当按钮被点击时,就会发射clicked信号。

在Qt中除了系统预定义的信号外,也可以自定义信号

信号的声明在头文件中,以关键字signals开头
signals:
 void signals();
 void signals(int x);
这里面有两个信号,最然名字一样,但是携带的参数不一样,有点类似于函数的重载。
信号类似一个普通的C++函数,但是它没有实体,只有一个空壳,而且它的返回值永远是void,不要期待从信号中返回有用的信息。信号声明好以后,有moc工具自动产生,因此不应该放在.cpp文件中。
系统预定义信号一般会自动发射,不需要我们关心,如果需要手动发射信号,可以这样写emit signals();

2、槽
槽是普通的C++成员函数,可以被正常的调用,很多信号可以与槽进行关联。既然槽是一个普通的成员函数,那么它也有权限。因此有3种类型的槽函数,public slots,private slots, protect slots

槽函数的申明也是在头文件中
private slots:
  void mySlot1();
  void mySlot1(int x);

在信号和槽函数的声明之前,必须加一个宏Q_OBJECT,只有这样Qt才会认识它们

3、元对象工具
moc工具会对c++文件中的类的声明进行初始化,自动产生用于初始化元对象的c++代码,元对象包含全部的信号和槽,以及指向这些名字的指
针。
moc读取c++源文件,如果发现有Q_OBJECT宏声明的类,它就会生成另外的c++源文件。moc工具不扩展#define,因此信号和槽函数中不能有宏定义

4、关联
信号与槽的关联通过函数connect
btn = new QPushButton();
lab = new QLabel();
connect(btn, SIGNAL(clicked()), lab, SLOT(clear()))
信号需要使用宏SIGNAL(),槽函数需要使用宏SLOT();
信号和槽的参数一定要一致;
当信号和槽属于同一对象时,信号的接收者可以省略
connect(btn, SIGNAL(clicked()), SLOT(showMenu()))

信号和槽应该注意的问题
1)、构造函数不能在信号和槽的区域内
2)、函数指针不能做为信号和槽的参数
3)、信号和槽不能有缺省的参数
4)、信号和槽不能带有模板类参数
5)、嵌套的类不能位于信号和槽区域,也不能有信号和槽





 






 


 




 

http://www.lbrq.cn/news/2627281.html

相关文章:

  • 移动网站建设流程沧州网站优化
  • 做网站用的到minitab么色目人
  • 中山做网站的seo关键词优化怎么做
  • 物业管理系统功能结构图seo专员工资一般多少
  • 武汉网站设计方案南京网站设计优化公司
  • 初中做历史的网站小说关键词生成器
  • 外贸渠道有哪些网站seo技术能不能赚钱
  • 怎么做网站表白seo顾问推推蛙
  • 黄页网页的推广网站下载四平网络推广
  • 有备案号的网站是公司的吗重庆百度关键词推广
  • 北京网站开发公司推广平台怎么找客源
  • 电商网站模板html百度联盟官网
  • 晋城市住房保障和城乡建设局网站广告多的网站
  • 柳州建站百度关键词屏蔽
  • 广州市网站建设制作费用广州网站运营
  • 义乌网站制作多少钱关键词查询爱站网
  • 建设官方网站网站seo优化方案策划书
  • 什么是优化型网站优化公司流程制度
  • 芬兰网站后缀网络广告案例
  • 加盟连锁短视频seo排名系统
  • 赣州睿行网络科技有限公司北京优化互联网公司
  • 个人能免费做网站goole官网
  • 芜湖做网站推广有哪些公司百度荤seo公司
  • 计算机网站开发课本站长统计app进入网址新版
  • 营销型网站什么意思网络营销期末考试题库
  • 澄迈网站建设网络外包运营公司
  • 一流 北京网站建设网页制作步骤
  • 长春建站模板搭建百度 营销怎么收费
  • 济宁网站建设神华科技百度搜索排名优化
  • 坪山网站建设重大新闻事件2023
  • 计算机视觉(opencv)——图像本质、数字矩阵、RGB + 基本操作(实战一)
  • 一文搞定JavaServerPages基础,从0开始写一个登录与人数统计页面
  • 最优化中常见的优化理论
  • 【视觉识别】Ubuntu 22.04 上安装和配置 TigerVNC 鲁班猫V5
  • sqli-labs-master/Less-31~Less-40
  • 内联函数:提升效率的空间换时间艺术