2.1
对于所有定义了信号和槽的类,类开始处的Q_OBJECT是必须的,宏tr()翻译成其他语言的标记,
字符串中使用“&”来表示快捷键。eg:findButton = new QPushButton(tr(“&Find”)); 通过Alt + F激活
setBuddy()设置“伙伴”,所谓“伙伴”就是一个窗口部件,它可以再按下标签快捷键时接收焦点。
setDefault()设置默认按钮
2.2深入介绍信号和槽
槽和普通的c++成员函数相比,唯一不同的是槽可以和信号连接在一起
connect(sender,SIGNAL(signal),receiver,SLOT(slot)); sender,receiver为QObeect指针
- 一个信号可以链接多个槽,在发射这个信号时,会以不确定的顺序一个接一个地调用这些槽
- 多个信号对应一个槽
- 一个信号可以与另一信号相连接
- 链接可以被移除disconnect(lineEdiit, SIGNAL(overload()),this,SLOT(updateRecord(const QString&)));
- 当删除对象时Qt会自动移除和这个对象相关的所有连接
要把信号成功连接到槽(或者链接到另一个信号),他们的参数必须具有相同的顺序和相同的类型,这里有个例外,如果信号的参数比它所连接的槽的参数多,那么多余的参数将会被简单地忽略掉
emit salaryChanged(mySalary)
Qt的元对象系统,提供了两项关键技术,信号-槽及内省,