Qt 设计器的编辑模式
Qt 设计器提供了四种编辑模式: 窗口部件编辑模式、信号/槽编辑模式、伙伴编辑模式和 Tab 顺序编辑模式。在使用 Qt 设计器时,您将始终处于以下四种模式之一。要在模式之间切换,只需从“编辑”菜单或工具栏中选择它。下表进一步详细描述了这些模式。
编辑模式 | |
---|---|
窗口布局编辑模式是Qt Designer的默认模式,可以改变窗口部件的布局、编辑部件属性等,若在其它模式下,可以使用F3快速切换。 | |
在信号/槽编辑 模式下,可以通过Qt 的信号和信号槽机制将不同的部件关联到一起。模式切换快捷键为F4。 | |
在伙伴编辑模式下, 伙伴部件可以分配到标签控件,使其正确处理键盘焦点。 | |
在Tab顺序编辑模式下, 我们可以设置键盘进行Tab切换的键盘焦点切换顺序。 |
窗口部件编辑模式(Widget Editing Mode)
在 Widget 编辑模式下,可以从窗口部件盒将部件对象拖动到窗体界面,然后编辑、缩放、拖动位置、甚至在窗体间拖拽。对象属性可以进行即所见即所得的交互式编辑。编辑界面简单且直观,但不失为强大的Qt布局工具。
打开文件
菜单并选择 新建
,或者使用Ctrl + N
快捷键,即可创建新窗体。打开文件
菜单并选择 打开
,或者使用Ctrl + O
快捷键,即可打开并编辑窗体。
通过从文件
菜单中选择另存为...
选项来随时保存窗体文件。Qt Designer保存的 UI 文件包含有关所使用对象的信息,以及它们之间信号和槽关联的任何细节。
编辑窗体
窗口部件盒(Widget Box)即Qt Designer左侧的部件库
,
默认情况下,新窗体在窗口部件编辑模式下打开。要从其它模式切换到此编辑模式,从编辑
菜单编辑窗口部件
或按 F3
键快速切换。
窗口部件盒中的部件对象拖动到窗体界面预期的位置即可。只要部件对象在窗体中,即可通过鼠标拖动、Ctrl加方向键(像素级移动)拖动它们。至于选中部件对象则可以通过鼠标左键单击或者Tab
键切换选中部件对象来完成。
窗口部件盒包含窗体设计所需的部件对象,并对其分门别类。需要多准备的对象是容器类(Container)部件。这将在在Qt Designer中使用容器章节进行详细说明。
选择部件对象
选中窗体中的部件对象有如下方式:
- 单选:直接鼠标单击窗体中的部件对象,选中后会有控制操作的小点显示
- 多选:鼠标划区域或按住
Ctrl
键单击所要选中的多个部件对象 - 在布局中移动某个小部件,按住鼠标拖动它的同时按住
Shift + Ctrl
键 - 通过对象选择器(Object Inspector)选中对象
当某个小部件被选中时,可以对它执行剪切、复制和粘贴等正常的剪贴板操作。所有这些操作都可以根据需要完成或撤销。
有以下快捷方式可供使用:
操作 | 快捷键 | 描述剪切 |
---|---|---|
剪切 | Ctrl+X | 将选定的对象剪切到剪贴板 |
拷贝 | Ctrl+C | 将选定的对象复制到剪贴板 |
粘贴 | Ctrl+V | 将剪贴板中的对象粘贴到窗体上 |
删除 | Delete | 删除所选对象 |
克隆对象 | Ctrl+拖动 (鼠标左键) | 拖动复制选中对象或对象组的副本 |
预览 | Ctrl+R | 显示窗体的预览 |
上面的所有操作(除了克隆)都可以通过 编辑
菜单及右键菜单来访问。这些菜单还提供了用于布局对象的函数,以及用于选择表单上所有对象的 Select All 函数。
部件不是唯一的对象; 您可以根据需要任意制作它们的多个副本。要快速复制一个部件,您可以按住 Ctrl 键并拖动它来克隆它。部件可以比剪贴板操作更快地复制和放置在窗体上。
拖放
Qt Designer 继承了Qt的拖放功能。可以直接将部件对象拖放到窗体中。部件要可以在窗体中克隆副本,按住Ctrl键并拖动部件。最后还可以通过对象选择器将需要的对象轻松嵌套布局。
Qt 设计器允许在窗体之间复制、粘贴和拖动对象的选择。您可以使用此特性创建同一窗体的多个副本,并在每个副本中尝试不同的布局。
属性编辑器(Property Editor)
属性编辑器始终显示当前选定对象的属性。可用的属性取决于正在编辑的对象,所有部件都具有一些通用的属性,譬如 objectName、对象的内部名称(internal name)和 enabled(本属性决定对象是否可交互)。
属性编辑器还有少数特别的属性:
- 复合属性(由多个值组成的属性)表示为可扩展的节点,允许对其值进行编辑
- 包含选择或选择标志的属性通过带有复选项的组合框进行编辑
- 一些丰富的数据类型属性也可以通过属性面板控制,如 调色板QPalette ,当编辑改属性时会弹出编辑调色板对话框。QLabel 和
Button
一类的部件都有一个text
属性,该属性可直接双击部件或选中部件后按F2
进行编辑。Qt Designer使用转义字符来处理换行
(\n)及\
,使其在文本中正常显示。编辑状态下使用右键菜单同样可以插入换行符。
动态属性
属性编辑器还可用于向标准 Qt 部件和窗体(Form)本身添加新的动态属性。自 Qt 4.4以来,可以通过属性编辑器工具栏添加和删除动态属性,如下图所示。
要添加动态属性,请单击“添加”按钮。要删除它,则单击“删除”按钮即可。通过“配置”按钮可以让属性按字母顺序排序及更改颜色组。
对象检查器
对象检查器显示当前窗体中所有部件对象及层级关系。点击部件名字左边的箭头可显示部件或布局的子对象。
窗体中的每个部件对象都可通过点击对象检查器中对应的项来选中。右键点击同样可以打开该对象的右键操作菜单。这些功能在存在层叠对象的时候非常实用。查找某个对象可以通过对象检查器中的Filter来进行筛选查找。
自Qt4.4起,双击对象名可以对其进行修改。
自Qt4.5起,对象选择器显示容器(container)的布局状态,如果布局有问题,则显示其左侧显示受破坏的布局图标。
信号和插槽编辑模式
在Qt Designer的信号和插槽模式下,可以使用Qt的信号和插槽机制将对象关联在一起。Qt Designer中可以通过非常直观的方式操作对象间的关联。保存窗体后所有关联均会保存到ui文件中,以保证在生成项目时可用。
有关 Qt 信号和 slots 机制的更多信息,请参考 Signals 和 Slots 官方文档。
关联对象
关联对象之前,首先要切换到信号/槽编辑模式。通过编辑-编辑信号/槽
和F4
快捷键均可实现。通过工具栏上的也可以完成模式切换。
理论上窗体中所有部件对象皆可相互关联,然而间隔符只是为布局提供间距,其不能与其他对象关联。
对象高亮显示
当鼠标经过对象时,该对象自动高亮显示,如上图。
鼠标放在对象上,按住左键不放拖动到要关联的对象上,中间会出现一个箭头,如上图所示。至此,说明两者可以进行信号和槽的连接。释放鼠标后弹出配置连接
对话框,如下图所示。
对话框中显示源对象的可用信号和目标对象的可用槽。
若要进行关联请选择发送的信号和接收的槽,然后ok
保存,如上图。否则请Cancel
退出并关闭对话框。
注意
如果选中
显示从QWidget继承的信号和槽
复选框,则显示所有可用的信号和槽。否则,从 QWidget 继承的信号和槽将被隐藏。
表单中的对象 可以建立多个关联;也可以将窗体本身与对象之间建立信号和槽的关联。因此, 许多对话框中的信号和槽的关联完全可以在Qt Designer中进行配置。
与窗体关联
若将部件对象与窗体本身进行关联,只需拖动鼠标到窗体空白处释放鼠标即可。目标端变为电气“接地”符号,如上图。
编辑和删除关联
通常情况下,关联路径一旦建立,其两端会有两个标签分别显示源对象的信号和目标对象的槽,中间则有一条带箭头的连接线,由源对象指向目标对象。当鼠标经过两端的红色联结点时会变成手型,拖动可改变标签的位置。
信号/槽编辑器
信号和槽的关联建立后同样可以编辑。所有的信号/槽关联信息均可以在信号/槽编辑器中以列表的形式展现。若要进行编辑,可以双击联结路径或其中一个标签打开编辑对话框。
删除关联
信号和槽的关联可以通过点击关联路径选择。选中后可以Delete
键删除,也可以通过信号/槽编辑器中的“删除”按钮删除。
伙伴编辑模式(Buddy Editing Mode)
Qt Designer 最实用的功能之一就是对伙伴部件(buddy widget)的支持。某个QLabel部件绑定了组合快捷键并被使用时,与之关联的伙伴部件(buddy widget)接受输入焦点。伙伴(buddy)的概念在Qt的模型/视图框架中同样适用。
将标签(Lable)联结伙伴部件(Buddy widget)
打开编辑
菜单选择伙伴编辑
,进入伙伴编辑模式。此模式展示窗体部件的方式类似于信号/槽编辑模式
。只不过此模式下的联结必须以lable标签部件开始。理想情况下,每个绑定快捷键的label标签组件都要与相应的部件(如QLineEdit)建立伙伴关系。
建立伙伴关系
单击某个label,拖动鼠标到窗体中的目标部件,释放鼠标,如此即可建立两者的伙伴关系。关联后快捷键将被给到伙伴部件。预览窗体可以测试每个label与其伙伴部件直接的关联。
删除伙伴关系
每个label只能定义一个伙伴部件,要改变其伙伴关系,必然要先删除现有的伙伴关系后才能与其建立新的伙伴关系。
label与其伙伴部件的关联删除方式与信号/槽编辑模式下信号与槽的关联方式相同:选中联结路径线(选中后为红色),Delete
键即可删除。当然,此操作不会也不能改变任何标签及其伙伴关联。
Tab顺序编辑模式
很多用户都期望只使用键盘就能在各个部件间来回切换并控制它们。Qt允许用户使用Tab
和Shift + Tab
来完成切换。默认的Tab顺序是基于部件的构建顺序的(简单来说谁被拖进来的早谁的Tab顺序就靠前),虽然这种排序方式对多数用户来说已经够用,但是从实际开发以及软件易用性优化来说,该编辑模式提供了更好的解决方案。
设置Tab顺序
打开编辑
菜单选择编辑Tab顺序
,进入Tab顺序编辑模式。该模式下,窗体中所有输入及操作部件上都会显示一个数字来表示其目前的Tab顺序。进入Tab顺序编辑模式后第1个被点击的部件顺序号就变为了数字1,第2个被点击的就变为了数字2,以此类推即可完成Tab顺序的编辑。
当前设置的Tab顺序为红色,已经设置了Tab顺序的数字将变为绿色,尚未被点击的数字将保持蓝色。
如果设置错误,只需双击窗体空白处(不要点到数字上就好啦),或者右键菜单选择重新开始
回到初始状态。
如果窗体上有很多部件,并且希望从某个中间数字顺序开始排序,按住Ctrl
键并在其开始数字上打开右键菜单并选择从这里开始
,如下图,在数字4上打开右键菜单,则Tab排序从当前部件及当前Tab顺序4开始,再点击下一个数字后其顺序数字会变成5,以此类推。
至此,Qt Designer的4种编辑模式已经介绍完毕,你是否已经get到其精髓和重点?如有表诉不当的地方还请留言指正哦~