The Book of Qt 4 翻译:3.1.3-3.1.6 用户界面设计

The Book of QT4 翻译

QT程序设计艺术

---------------------------------------------------------------------------------

原名:The Book of QT 4:The Art of Building Qt Applications

译名:The Book of QT 4中文版:QT程序设计艺术

---------------------------------------------------------------------------------

第三章 使用Qt设计器进行界面设计

 

3.1.3 预览

为了检查布局结果,你可以使用Qt设计器窗体菜单上提供的预览功能,如果你想,通过预览子菜单,你甚至可以以其它的样式查看对话框。图3.8显示了Linux下的预览。奇趣定义了Plastique作为默认样式,这个样式与KDE 3的默认样式相似。在Mac OS X上,Qt用户使用原生的Aqua样式,此样式使用Mac OS X的绘图规范。同样地,Windows XP样式使用Windows APIs绘制样式。因此,Aqua样式和XP样式仅仅在各自的操作系统上可用。

3.1.4 信号-槽连接

除了界面设计模式,Qt设计器也包含了另一个信号/槽编辑器视图,在信号-槽视图中,你可以用图形化的方式为一个已存在的设计添加信号-槽连接。按F4键或者选择菜单编辑--编辑信号/槽就可以切换到这个模式;你可以按F3键或者选择菜单编辑--编辑窗口部件回到界面设计模式。

在Qt设计器中连接信号和槽需要两步。第一步,把一个你想要的信号对应的窗口部件拖动到另一个有对应的槽的部件。窗口部件或对话框的背景可以成为拖放的目标。Qt设计器用一个土地图标显示在那儿建立的连接;所有其它的连接都结束于一个在目标部件上的箭头(图3.9描述了这两种情况)。

图3.9 在Qt设计器中通过拖放创建信号-槽连接。

第二步包括为两个部件指定想要的配对的信号-槽。当你在目标部件上释放鼠标按键的同时,Qt设计器就打开一个对话框,如图3.10所示:左边显示的是最常用的信号列表菜单。如果你寻找的信号不在那儿,点击“显示所有信号和槽”选框就可以显示源部件所有可用的信号。右边选择框显示的是与左边选择的信号匹配的目标部件所有的槽列表。如果你确认选择,连接就建立了。

图3.10:在这个对话框中,开发者可以为所选的部件建立信号-槽连接。

点击连接线,然后按Del键可以移除连接。

3.1.5 TAB顺序

TAB顺序对于键盘用户使很重要的。这个功能允许通过TAB键将输入焦点切换到期待输入的另一个部件。Qt设计器指定的TAB顺序,因此最开始添加到对话框的部件拥有键盘焦点。焦点可以通过按TAB键切换到下一个插入的GUI元素。当设计用户界面时,你应该注意默认的TAB顺序,并且作必要的修改以使得你的程序对用户尽可能的友好。

图3.11:在TAB顺序模式中,当按下TAB键是焦点如何切换。

为了达到这个目的,你可以切换至TAB顺序模式,方法是通过编辑--编辑TAB顺序菜单或者点击工具栏上有数字123和一个箭头的那个图标。现在Qt设计器在绿色的方框中显示了每个部件在TAB顺序中的当前位置(图3.11).逐个点击相应的方框可以增加顺序值。

3.1.6 快捷键和伙伴

如果能够尽可能迅速的直接跳转至许多常用的部件,那些偏好键盘控制的用户将会感激你。像按钮这样显示用户定义的文本的GUI元素,可以通过在字符前面放一个&符号的方式指定一个快捷键,它将充当键盘快捷方式。如果文本本身包含一个真正的&符号。那么就必须用两个&&代替。

现在如果用户按下Alt+字符的组合键,窗口部件就会被激活并获得焦点。在图3.12中,我们为退出按钮指定了快捷键。

不过,QLabel对象是一个例外。因为它们在布局中通常用于描述一个邻近的“伙伴”部件,它们自己并不接受焦点。然而,标签的伙伴属性可以被用于为与它关联的伙伴部件指定一个键盘快捷键,就像标签的描述文本直接与它的伙伴部件自身关联一样。

在Qt设计器编辑伙伴模式的视图中,你可以直接指定一个标签的伙伴部件。为了与伙伴关联,点击未来的伙伴标签,它将以红色高亮,按住鼠标左键,拖动一个连接到稍后将与它关联的部件上方就可以了。

 

图3.12:标签是其它部件的朋友:Qt设计器伙伴模式中的伙伴分配。

在图3.12显示的这个例子中,如果用户按下Alt的同时按下标签上用下划线标记的字母,相应的行编辑器就会获得焦点。

另一个方法是,在普通设计模式中,你可以在属性编辑器中使用buddy属性设置伙伴部件的名字。在我们的字节转换器对话框中,使用这种方式,我们可以设置显示十进制文本的QLabel对象的伙伴属性值为与它对应的,名为decEdit的行编辑器的objectName属性的值。

要解除伙伴关系,你需要做的就是在伙伴模式中点击连接线然后按下Del键。

 

作者:张小可
出处:
http://mcxiaoke.cnblogs.com/
转载:原创翻译,欢迎转载,不得用于商业目的,必须保留本文的署名
 (包含链接).

posted @ 2010-05-27 13:36 mcxiaoke 阅读(1466) 评论(1) 编辑 收藏