第二章 创建对话框

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的元对象系统,提供了两项关键技术,信号-槽及内省,

原文地址:https://www.cnblogs.com/zhuqn/p/4157959.html