QT中Buddy组件的作用

QT中的Buddy主要应用在快捷键上。最常用的就是 QLabel 和 QLineEdit 两个控件上。

1. 通过Designer设置Buddy关系

如果名字为Name的 QLabel 设置的控件Name为 “&Name” ,那么该控件快捷键则为 “Alt + N”,如果我们在键盘上输入此快捷键,则输入焦点聚焦在名称为“Untitled image”的QLineEdit控件上。

designer-buddy-mode
例如上图中的Name组件的Buddy组件为Untitled Image。实现Buddy组件非常简单,就是选中 名称为“Name”的QLable,然后按住鼠标左键,一直拉到其Buddy组件上释放即可,设置中的效果如下:

designer-buddy-making

删除Buddy关系,则选中上图中的箭头,点击右键在弹出的菜单中选择 “Delete” 即可。

2. 通过代码设置Buddy关系

设置对应Buddy控件使用setBuddy(buddy) ,如果取消Buddy关系则setBuddy(NULL) 即可。

[source lang="cpp"]
// void QLabel::setBuddy ( QWidget * buddy)

QLineEdit *nameEd = new QLineEdit(this);
QLabel   *nameLb = new QLabel("&Name:", this);
nameLb->setBuddy(nameEd);

QLineEdit *phoneEd = new QLineEdit(this);
QLabel   *phoneLb = new QLabel("&Phone:", this);
phoneLb->setBuddy(phoneEd);
[/source]

发表评论

电子邮件地址不会被公开。 必填项已用*标注