【发布时间】:2011-07-15 12:03:49
【问题描述】:
在 GUI 对话框中,大多数应用程序提供如下键盘控制:
- Enter 键 - 按下默认按钮。 (默认通常用粗体按钮边框表示。)
- Esc 键 - 按取消或关闭按钮。
- 空格键 - 按下当前具有键盘焦点的小部件。
- Tab 键 - 将焦点移至下一个小部件。
问题是,当键盘焦点位于作为按钮的小部件上时,是否应将默认按钮更改为具有焦点的按钮?
我发现此行为存在一些问题:
- 重绘按钮以展开原始默认按钮的轮廓并将焦点下的按钮重新加粗为新默认按钮的显示噪音。
- Space 键现在与 Enter 键有些多余。
- 现在没有键盘加速器来获取正常的默认按钮(通常是确定按钮)。
但是,似乎趋势已经朝着这个方向发展,将焦点更改为另一个按钮的默认按钮。这种偏离早期 GUI 的理由是什么?鉴于无法按下原始默认按钮,它似乎提供的功能较少。人们是否发现原始模型过于复杂,用户无法理解?我认为对话框的键盘控制将是高级用户的任务,他们可以轻松理解模型并且更喜欢始终使用当前按钮 (Space) 和原始默认按钮 (Enter) 的加速键。
请注意,Qt for one 支持更改:QPushButton 的 autoDefault 属性负责更改默认按钮的行为。默认情况下,它的值为 true。因此,您必须采取额外措施将所有按钮设置为 false,以防止它们成为焦点时的默认按钮。
【问题讨论】:
-
你有什么证据表明这种新趋势?
-
Firefox 对话框、Microsoft word 对话框等
标签: qt user-interface focus keyboard-shortcuts