Qt学习笔记(一)信号和槽
来源:互联网 发布:网络英语电台 编辑:程序博客网 时间:2024/06/11 15:13
信号和槽是Qt编程的基础,它有点类似MFC的消息映射机制,但远较之简洁和强大。
信号和槽的定义与普通的类成员函数定义几乎完全一样,只不过信号和槽的声明需要出现在类声明的特定段中,如下的示例代码所示:
signals:
void findNext(const QString& str, Qt::CaseSensitivity cs);
void findPrevious(const QString& str, Qt::CaseSensitivity cs);
private slots:
void findClicked();
void enableFindButton(const QString& text);
另外,不要忘记在类定义开始处添加Q_OBJECT宏:
class FindDialog : public QDialog
{
Q_OBJECT
...
}
信号的发射需要用到emit关键字,如发射上文声明的findNext信号的调用会是这个样子:
emit findNext("aa", Qt::CaseSensitive);
信号和槽的绑定需要用到QObject::connect函数,对它的调用会是如下的样子:
connect(sender, SIGNAL(signal), receiver, SLOT(slot));
sender和receiver都是QObject的指针,signal和slot是不带参数的函数名。
此外,信号和槽的绑定还有其他的一些情况:
1.一个信号连接多个槽,在发射这个信号的时候,会以不确定的顺序一个接一个地调用这些槽。
2.多个信号连接同一个槽,无论发射哪个信号,槽都会被调用。
3.一个信号连接另外一个信号,但发射第一个信号时,第二个信号也会被发射。
4.连接可以被移除,通过disconnect调用可以动态移除一个连接。
值得注意的一点是:任何派生于QObject的类都可以使用信号和槽的机制,而并不局限于窗口部件。也就是说完全可以在我们自己的工作类中使用这一机制实现事件监听、动态绑定这样的功能,条件是我们的类派生自QObject。
- Qt学习笔记(一)信号和槽
- Qt学习笔记(二) 信号和槽
- Qt学习笔记1:信号和槽
- Qt学习笔记:信号和槽机制
- QT 笔记一(信号与槽)
- 【QT】信号和槽机制(一)
- Qt学习笔记-----信号槽
- qt学习(二):信号和槽
- Qt学习(一)--了解信号与槽
- QT学习笔记(2)创建项目并实现信号槽和界面开发
- QT学习笔记(2)—信号与槽
- QT学习笔记 QTimer 与信号 槽
- Qt学习笔记5-信号槽机制
- Qt学习笔记---信号与槽
- Qt基础 05_信号和槽(一)
- QT的信号和槽函数的使用(一)
- Qt笔记_信号和槽
- Qt程序学习(二)------信号和槽的机制
- 怎样使用系统镜像备份 Windows 7 ?
- Oracle 时区问题
- >之--线性表的顺序存储(顺序表) (转)
- ./configure 参数详解
- 使用cmd命令手动、自动启动和禁用服务
- Qt学习笔记(一)信号和槽
- 朝会
- 解决“仅可以为插入 LONG 列的 LONG 值赋值”错误
- WaitForSingleObject 与 EnterCriticalSection 性能比较
- 从windows到*nix(三) 多任务
- Install Fedora Without CD-ROM
- java文本框内容改变事件以及改变文本框内容
- Oracle 控制文件
- 回应王海洋,李楠,谢跃平诸君的顶推,今天开博了。