企业网站建设预算地方门户网站怎么赚钱
news/
2025/9/27 13:56:28/
文章来源:
企业网站建设预算,地方门户网站怎么赚钱,专业的网站开发建访,千华网鞍山门户网站信号#xff1a;事件
槽#xff1a;事件处理函数
信号与槽#xff08;Signal Slot#xff09;是 Qt 编程的基础#xff0c;也是 Qt 的一大创新。因为有了信号与槽的编程机制#xff0c;在 Qt 中处理界面各个组件的交互操作时变得更加直观和简单。 信号#xff0…信号事件
槽事件处理函数
信号与槽Signal Slot是 Qt 编程的基础也是 Qt 的一大创新。因为有了信号与槽的编程机制在 Qt 中处理界面各个组件的交互操作时变得更加直观和简单。 信号Signal就是在特定情况下被发射的事件例如PushButton 最常见的信号就是鼠标单击时发射的 clicked() 信号一个 ComboBox 最常见的信号是选择的列表项变化时发射的 CurrentIndexChanged() 信号。 GUI 程序设计的主要内容就是对界面上各组件的信号的响应只需要知道什么情况下发射哪些信号合理地去响应和处理这些信号就可以了。 槽Slot就是对信号响应的函数。槽就是一个函数与一般的C函数是一样的可以定义在类的任何部分public、private 或 protected可以具有任何参数也可以被直接调用。槽函数与一般的函数不同的是槽函数可以与一个信号关联当信号被发射时关联的槽函数被自动执行。 信号与槽关联是用 QObject::connect() 函数实现的其基本格式是
QObject::connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));
connect() 是 QObject 类的一个静态函数而 QObject 是所有 Qt 类的基类在实际调用时可以忽略前面的限定符所以可以直接写为
connect(sender, SIGNAL(signal()), receiver, SLOT(slot()));
其中sender 是发射信号的对象的名称signal() 是信号名称。信号可以看做是特殊的函数需要带括号有参数时还需要指明参数。receiver 是接收信号的对象名称slot() 是槽函数的名称需要带括号有参数时还需要指明参数。 SIGNAL 和 SLOT 是 Qt 的宏用于指明信号和槽并将它们的参数转换为相应的字符串。例如在 samp2_1前面章节中的项目的 ui_widget.h 文件中在 setupUi() 函数中有如下的语句
QObject::connect(btnClose, SIGNAL(clicked()), Widget, SLOT(close()));
其作用就是将 btnClose 按钮的 clicked() 信号与窗体Widget的槽函数 close() 相关联这样当单击 btnClose 按钮就是界面上的“Close”按钮时就会执行 Widget 的 close() 槽函数。 关于信号与槽的使用有以下一些规则需要注意
一个信号可以连接多个槽例如 connect(spinNum, SIGNAL(valueChanged(int)), this, SLOT(addFun(int)); connect(spinNum, SIGNAL(valueChanged(int)), this, SLOT(updateStatus(int)); 这是当一个对象 spinNum 的数值发生变化时所在窗体有两个槽进行响应一个 addFun()用于计算一个 updateStatus() 用于更新状态。 当一个信号与多个槽函数关联时槽函数按照建立连接时的顺序依次执行。 当信号和槽函数带有参数时在 connect()函数里要写明参数的类型但可以不写参数名称。多个信号可以连接同一个槽例如在 samp2_2前面章节中的项目中让三个选择颜色的 RadioButton的clicked() 信号关联到相同的一个自定义槽函数 setTextFontColor()。 connect(ui-rBtnBlue,SIGNAL(clicked()),this,SLOT(setTextFontColor())); connect(ui-rBtnRed,SIGNAL(clicked()),this,SLOT(setTextFontColor())); connect(ui-rBtnBlack,SIGNAL(clicked()),this,SLOT(setTextFontColor())); 这样当任何一个 RadioButton 被单击时都会执行 setTextFontColor() 函数。一个信号可以连接另外一个信号例如 connect(spinNum, SIGNAL(valueChanged(int)), this, SIGNAL (refreshInfo(int)); 这样当一个信号发射时也会发射另外一个信号实现某些特殊的功能。严格的情况下信号与槽的参数个数和类型需要一致至少信号的参数不能少于槽的参数。如果不匹配会出现编译错误或运行错误。在使用信号与槽的类中必须在类的定义中加入宏 Q_OBJECT。当一个信号被发射时与其关联的槽函数通常被立即执行就像正常调用一个函数一样。只有当信号关联的所有槽函数执行完毕后才会执行发射信号处后面的代码。信号与槽机制是 Qt GUI 编程的基础使用信号与槽机制可以比较容易地将信号与响应代码关联起来。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919547.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!