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

网站建设需要多少钱文档杨庄网站建设

网站建设需要多少钱文档,杨庄网站建设,淮北信息网,iframe网站后台模板信号和槽机制是Qt的核心机制#xff0c;可以让编程人员将互不相关的对象绑定在一起#xff0c;实现对象之间的通信。 声明了信号的对象#xff0c;当其状态改变时#xff0c;信号就由该对象发送出去#xff0c;而且该对象只负责发送信号#xff0c;它不知道另一端是谁在…信号和槽机制是Qt的核心机制可以让编程人员将互不相关的对象绑定在一起实现对象之间的通信。 声明了信号的对象当其状态改变时信号就由该对象发送出去而且该对象只负责发送信号它不知道另一端是谁在接收这个信号。 槽用于接收和处理信号一个槽并不知道是否有任何信号与自己相连接。 槽实际上只是普通的对象成员函数。当一个信号被发射时与其相关的槽将被立即执行就像一个正常的函数调用一样。 信号与槽机制完全独立于任何GUI事件循环。 信号 ①信号signal的声明是在一个类的头文件中进行的 ②Qt的signal关键字指出进入了信号声明区随后即可声明自己的信号 例如 signals:void stateChanged(int nNewVal); //定义信号 这里signals是Qt的关键字而非C的关键字。 信号函数stateChanged定义了信号stateChanged这个信号带有参数nNewVal 信号函数语法受到以下几点约束 ①函数返回值是void类型因为触发信号函数的目的是执行与其绑定的槽函数无须信号函数返回任何值。 ②开发人员只能声明而不能实现信号函数。 ③信号函数被moc自动设置为protected因而只有包含一个信号函数的那个类及其派生类才能使用该信号函数。 ④信号函数的参数个数、类型由开发人员自行设定。这些参数的职责是封装类的状态信息并将这些信息传递给槽函数。 ⑤只有QObject及其派生类才可以声明信号函数 槽 ①槽函数和普通的C成员函数一样可以被正常调用。 ②槽唯一的特殊性就是很多信息可以与其相关联。 ③当与其关联的信号被发送时这个槽就会被调用。 ④槽可以有参数但槽的参数不能有默认值。关键字slots表名进入了槽函数声明区。 槽的声明也是在头文件中进行的例如 public slots: //此语句说明后面就是槽函数void Function(int nNewVal){qDebug() new Values nNewVal; //显示变量 } 槽函数的返回值是void类型因为信号和槽机制是单向的信号被发送后与其绑定的槽函数会被执行但不要求槽函数返回任何执行结果。和信号函数一样只有QObject及其派生类才可以定义槽函数。 既然槽函数是普通的成员函数因此与其他的函数一样它们也有存取权限publicprotectedprivate。也就是说人们能控制其他类能够以怎样的方式调用一个函数。 关联信号与槽 通过调用QObject::connect函数可以绑定一个信号函数和一个槽函数该函数最常用的格式如下 connect(sender,SIGNAL(signal_func()),receiver,SLOT(slot_func())) 其中sender及receiver都是指向QObject或其子类对象的指针 前者指向发送信号的对象后者指向处理信号的对象两者分别被称为“发送者”及“接收者”。 signal_func以及slot_func分别是这两个对象中定义的信号函数和槽函数。 当指定信号signal时一般使用Qt的宏SIGNAL指定槽函数时必须使用宏SLOT。 一个信号函数可以和多个槽函数绑定。 多个信号函数可以和一个槽函数绑定。 使用信号和槽机制时应该注意以下几点 ①信号和槽机制与普通函数调用一样如果使用不当在程序执行时也有可能产生死循环 ②如果一个信号与多个槽相联系那么当这个信号被发送时与之相关的槽被激活的顺序将是随机的 ③宏定义不能用在信号和槽的参数中。 ④信号和槽的参数个数与类型必须一致 信号和槽举例 再次建立头文件 exampleA.h修改其内容为 #ifndef EXAMPLEA_H #define EXAMPLEA_H #includeQCoreApplication class CExampleA:public QObject {Q_OBJECTint m_Value;// 定义私有成员 public:CExampleA(){m_Value 0;}void SetValue(int nNewVal){if (m_Value nNewVal){ return ; }m_Value nNewVal;// emit函数用来激活信号函数发送信号emit stateChanged(m_Value);} signals: // 定义信号函数带参数void stateChanged(int nNewVal); }; #endif // EXAMPLEA_HexampleB.h修改其内容为 #ifndef EXAMPLEB_H #define EXAMPLEB_H #includeQDebug //包含调式类 #includeQCoreApplication class CExampleB:public QObject {Q_OBJECT public:CExampleB(){} public slots: //定义槽函数void Function(int nNewVal) //nNewVal为100{qDebug() new Values nNewVal;} };#endif // EXAMPLEB_H再次打开新建对话框添加主函数文件 main.cpp中修改为 #includeexampleA.h #includeexampleB.h int main() {CExampleA a; //创建CExampleA类的对象a调用构造函数m_Value 0CExampleB b; //创建CExampleB类的对象b//连接信号和槽connect函数要求发送对象和接收对象均为指针a,b是对象名a,b是发送对象的指针和接收对象的指针。QObject::connect(a,SIGNAL(stateChanged(int)),b,SLOT(Function(int)));a.SetValue(100); //调用a对象的公有函数return 0; }运行 简单实现了信号与槽的功能
http://www.pierceye.com/news/103369/

相关文章:

  • 广州建设网站平台广东seo网站推广代运营
  • 网站 优化 关键字qq官网登录
  • 建设银行园区公积金管理中心网站地方门户网站推广
  • 桂林市网站设计wordpress远程数据库
  • 网站建设多钱怎么做网上卖菜网站
  • 响应式电商网站网站设计常见问题
  • 爱常德网凡科网站可以做seo优化
  • 建设银行手机银行官方网站小程序app公众号的区别
  • 彩票网站维护需要几天企业展示网站建设需要做什么
  • cms网站后台模版惠州网站设计哪家好
  • 海南智能网站建设设计湘潭学校网站建设 x磐石网络
  • 网站建设的入门书籍表格我做视频网站
  • 数据库跟网站内容青岛公司做网站的价格
  • 成都市金牛区建设和交通局网站营销专业网站
  • 免费的视频网站如何赚钱wordpress推广系统
  • 上海酒店团购网站建设网站建设风险分析
  • 做网站的抬头怎么做南昌app定制
  • 深圳市企业网站建设企业品牌设计
  • 做图网站有哪些内容惠州抖音推广
  • 郑州中原区建设局网站公司网站建设素材
  • 企业手机网站源码下载企查查网页版
  • 金科网站建设ps做网站难吗
  • 如何在年报网站上做遗失公告wordpress默认摘要
  • 中国网站服务器哪个好有哪些做公司网站
  • 做宠物的网站有哪些如何做电商生意
  • 具有品牌的常州做网站关于网站建设的广告词
  • 孝感网站推广品牌策划公司都有哪些
  • 保洁公司用哪些网站做推广wordpress aj提交评论
  • 互联网金融p2p网站建设模板简历模板免费下载网站
  • 绍兴建设网站制作3免费做网站