伙伴(buddy)是在QLabel类中提出的一个概念。因为一个标签经常用作一个交互式部件的说明,就像表单布局管理器时看到的那样,一个lineEdit部件前面有一个标签说明这个lineEdit的作用。为了方便定位,QLabel提供了一个有用的机制,那就是提供了助记符来设置键盘焦点到对应的部件上,而这个部件就叫做这个QLabel的伙伴。

其中助记符就是我们所说的加速键。在使用英文标签时,在字符串的一个字母前面添加“&”符号,那么就可以指定这个标签的加速键是Alt加上这个字母,而对于中文,需要在小括号中指定加速键字母。

最终达到的目标就是:按下快捷键就像按下了输入框一样。

 

在设计器中设置伙伴

按下设计器顶部栏中的编辑伙伴图标,进入伙伴设计模式,分别将各个标签与它们后面的部件连起来。

47 伙伴关系和Tab按键顺序_快捷键

 

 

设置Tab键顺序

对于一个应用程序,我们有时总希望使用Tab键来将焦点从一个部件移动到下一个部件。在设计模式,设计器提供了Tab键的设置功能。在上面程序的设计模式中,按下上边栏的编辑Tab顺序按钮进入编辑Tab键顺序模式,这时已经显示出了各个部件的Tab键顺序,只需要用鼠标点击这些数字,就可以更改它们。

47 伙伴关系和Tab按键顺序_设计模式_02

使用代码进行设置

当程序启动时,焦点会在Tab键顺序为1的部件上。这里进行的设置等价于在构造函数中使用如下代码:

//lineEdit在spinBox前面
setTabOrder(ui->lineEdit,ui->spinBox);

//spinBox在pushButton前面
setTabOrder(ui->spinBox,ui->pushButton);

//pushButton在checkBox前面
setTabOrder(ui->pushButton,ui->checkBox);