QT学习——信号与槽机制
来源:互联网 发布:叶萝莉娃娃淘宝 编辑:程序博客网 时间:2024/05/29 16:41
信号槽是Qt中特有的概念。它使得我们可以将不同的object绑定起来,而object对象间并不需要对相互了解。 Slots也是普通的c++方法,它们可以是virtual;可以被重载;可以使private、protected、public,可以像其它c++方法一样有各种类型的参数。它们唯一的区别就是signal与slot是相互链接起来的,slot函数在每次signal函数被emit时会被调用。
标准的connect函数如下:
connect(sender, SIGNAL(signal), receiver, SLOT(slot))
这里在写代码的时候要特别注意,别漏掉括号什么的,细心点;sender、receiver可以是同一个object,不同控件,不同类之间
sender和receiver是QObject对象的指针,signal和slot函数是不带参数的函数名,实际上SIGNAL()和SLOT()宏将他们的参数(signal和slot函数)转换成相应的字符串。 所以对于通过控件生成的信号,我们注意不要使用SIGNAL(ui.pushButton->clicked()),这样是错误的,对于按钮控件,识别它的clicked()信号而非ui.pushButton->clicked()这个操作。当然如果是自己提交的除外。
通过以下实例,我们可以看到信号槽的具体使用情况:
信号和槽函数必须有着相同的参数类型,这样信号和槽函数才能成功连接
(1)设置一次从多个控件中获取提交的数据,可以通过自己定义signal函数通过 emit来进行提交;
下面以从三个下拉控件中提交当前选定的下拉列表索引为例:
emit signSetSel(ui.comboBox->currentIndex(),ui.comboBox_con->currentIndex(),ui.comboBox_mode->currentIndex());
友元声明不能位于信号或者槽声明区内。相反,它们应该在普通C++的private、protected或者public区内进行声明。下面的例子是不合语法规范的:
- QT学习—信号与槽机制
- Qt学习——信号与槽机制
- Qt学习——信号与槽机制
- QT学习——信号与槽机制
- QT学习——信号与槽机制
- QT学习之 信号与槽机制
- Qt编程——信号与槽机制
- Qt信号与槽机制
- QT:信号与槽机制
- QT信号与槽机制
- QT信号与槽机制
- Qt 信号与槽机制
- QT信号与槽机制
- [QT]信号与槽机制
- Qt 信号与槽机制
- Qt--信号与槽机制
- Qt 信号与槽机制
- Qt信号与槽机制
- redirection in linux
- 利用spring session解决共享Session问题
- 将markdown文件转换为pdf
- gdbus 笔记
- caffe tools command
- QT学习——信号与槽机制
- 解决ajax跨域问题(转)
- Java中int与String类型间的相互转换
- http://m.baidu.com/
- 实现JS复制、粘贴,Chrome/Firefox下可用
- android返回键退出提示的两种方法
- oracle FLASHBACK介绍——闪退、回滚
- Ubuntu无法挂载NTFS硬盘或移动硬盘的问题
- 修改本地磁盘和网络磁盘(驱动器)的名字(卷标)