Qt Designer中存在四大编辑模式,可以方便完成很多需要代码完成的功能。其中默认和最常用的是编辑窗口部件的模式。
模式名称 | 图标 | 描述 |
编辑窗口部件 | ![]() | 拖拉拽创建个性化界面 |
编辑伙伴 | ![]() | 使用Qlabel进行快捷键、热键调用 |
编辑信号/槽 | ![]() | 快速、可视化搭建控件的信号和槽的关联 |
编辑Tab顺序 | ![]() | 使用Tab来进行顺序化的快捷键使用 |
一、编辑窗口部件
1.1 什么时候用编辑窗口部件
什么?你在看这个标题的内容吗?啥时候用?啥时候都用它呀,不然画不出来任何一个界面,哈哈。
1.2 基本操作
1.2.1 左键拖入
1.2.2 双击修改显示文本
双击例如按钮、Label、TextEdit等控件时,会修改相应控件的text内容。
1.2.3 双击修改子项目内容
双击例如List Widget、Tree Widget等控件时,可以修改相应控件中的子项目内容。
1.2.4 双击修改控件对象名称
双击没有可以显示的text文本,或者没有子项内容的控件,例如Font Combo Box、Time Edit等控件,则可以修改对象名称。
对象名称可以在转换为代码时,使用对象名称来调用相应控件。一般而言对象名称的取名规则为:操作 + _ + 控件类型。例如打开文件的按钮,则对象名称为open_file_button。
1.2.5 拖拽窗口修改大小
如果改变了窗口的大小,将会真实改变运行时的大小,因此一般情况下会进行自适应布局设计来动态修改控件的大小和位置。
1.2.6 右键控件
1.2.6.1 改变文本...
与双击修改控件的显示文本功能一致。
1.2.6.2 编辑项目...
与双击修改子项目内容的功能一致。
1.2.6.3 改变对象名称...
1.2.6.4 变型为
如果该控件上级父类不是QWidget,而是虚拟基类,则可以通过变型为的功能来改变这个控件的类。
类的选择范围是该虚拟基类的子类,例如Push Button可以变型为同为QAbstractButton子类的Tool Button、Radio Button、Check Box、Command Link Button,而Dialog Button Box的基类是QWidget,而非QAbstractButton,所以无法通过Push Button来进行变型。
1.2.6.5 改变工具提示...
工具提示是当鼠标悬停在相应控件上时会出现相应的提示。
在Qt Designer中可以改变工具提示的样式,打开源文可以发现样式其实就是一段带有样式的html代码:
悬停效果:
1.2.6.6 改变"这是什么"...
暂时不知道怎么调出来,知道的大佬请评论区说一下。
1.2.6.7 改变样式表...
Qt中可以类似html中使用css,Qt中使用的是qss,语法类似css,可以用来美化我们默认的样式。
写qss需要遵循用户体验,间距、各类标题样式、主题色等需要进行设计,如果没有设计概念,可以不使用qss,使用默认样式可以来搭建用户体验感不差的界面。
1.2.6.8 大小限定
快速设置minimumSize和maximumSize属性,根据窗口中所见的控件大小来设定。
- 设置最小宽度:根据当前控件的宽度,设置minimumSize的minimumWidth
- 设置最小高度:根据当前控件的高度,设置minimumSize的minimumHeight
- 设置最小大小:根据当前控件的宽度和高度,设置minimumSize的minimumWidth和minimumHeight
- 设置最大宽度:根据当前控件的宽度,设置maximumSize的maximumWidth
- 设置最大高度:根据当前控件的高度,设置maximumSize的maximumHeight
- 设置最大大小:根据当前控件的宽度和高度,设置maximumSize的maximumWidth和maximumHeight
使用小技巧:快速固定控件的大小,禁用缩放
1)先把控件设定到合适的大小
2)右键,选择设置最小大小和设置最大大小
3)成功固定大小,禁用缩放
1.2.6.9 提升为...
该功能在编写自定义控件时非常有用,如果在代码中设计了一个自定义的控件,想通过在Qt Designer中指定该自定义控件,则使用提升为的功能。
一般流程如下:
- 代码编写自定义控件
- 拖入一个控件到窗口中(可以使用没有任何样式的Frame) 作为占位控件
- 将占位控件提升为自定义控件
例如代码中编写了一个TestLineEdit自定义控件,该控件在Custom模块内,则添加一个新的类:
- 提升的类名称:TestLineEdit
- 头文件:Custom
转换的.py中调用自定义控件:
目录结构:
记得模块的调用需要在__init__.py中加入相应的文件才能使用模块调用:
快捷提升添加的类
当成功添加一个自定义的类后,我们下次提升该自定义类可以在右键菜单中快速查找到:
1.2.6.10 放到前面、放到后面
当一个控件遮盖了另一个控件,使用放到后面来展示遮盖的控件。
1.2.6.11 布局
当控件拥有一个以上的子控件,就可以进行布局的设置:
当然可以在工具栏中快速进行布局选择:
二、编辑伙伴
2.1 什么时候用编辑伙伴
当你需要搭配Alt+xx的热键使用时,可以使用编辑伙伴的功能,特别地,我用windows自带的笔记本程序举例最为直观:
文件的快捷键为Alt+F,当按下Alt+F时,即可打开文件的下拉框:
如果你需要实现上面的功能,编辑伙伴必须整上。
2.2 基本操作
1)拖入一个Label,文本改为test(&T)
2)拖入两个LineEdit,为了区分一个文本为1,另一个文本为2
3)打开编辑伙伴
4)选中Label,拉出红线,选中文本为2的LineEdit
5)打开预览,按Alt+T,即可使得文本为2的LineEdit取得焦点
2.2.1 删除伙伴
删除伙伴需要在编辑伙伴的模式下,选中相应的伙伴线条,当线条和对应控件外框变为红色,才可以右键进行删除:
2.2.2 添加热键
添加热键的操作即为通过修改文本,添加& + 数字或字母来进行添加,当添加成功后,&符号会消失,只剩下相应的数字或字母,然后在预览中可以看到按Alt时,相应的数字或字母下方会出现横线:
按下Alt时T变为了T ,即为成功。
2.2.1 不同类型的控件取得焦点
当不同控件被Label进行伙伴关联,则效果有些许不同。
2.2.1.1 文本输入类型,LineEdit、TextEdit等
添加伙伴,热键调用后会获得焦点,光标出现:
2.2.1.2 按钮类型,Push Button、Tool Button、Check Box等
添加伙伴,热键调用后会进行点击、选中操作:
2.2.1.3 菜单栏类型,QAction
菜单栏的QAction是加不了伙伴的,但可以在QAction的文本中添加&+字母来实现伙伴的功能,当菜单栏的QAction添加伙伴功能,会打开下拉列表:
三、编辑信号/槽
3.1 什么时候用编辑信号/槽
当需要通过拉线来进行快速地信号和槽关联,可以使用该模式。在模式下进行信号和槽的关联将更直观:
3.2 基本操作
1)拖入发送信号的Button
2)拖入LineEdit,修改文本为asdasd
3)打开编辑信号/槽
4)选择Button,拉出线条到LineEdit
5)选择Button的信号clicked(),LineEdit的槽为Clear()
6)预览点击Button,可以看到LineEdit的文本被清空了
当相应的信号和槽的关系被成功建立后,在信号/槽 编辑器中可以看到添加了一条新的记录:
所以,如果在编辑信号/槽模式下的各种线条关系,与信号/槽 编辑器中的记录是一一对应的。
3.3 接地符号用处
接地符号的信号/关联是信号源的控件与顶级控件(根控件)的关联。
四、 编辑Tab顺序
4.1 什么时候用编辑Tab顺序
当有一个表单有非常多的内容,双手基本都在键盘上,可以使用Tab键来快速跳转每一个输入框,则可以使用编辑Tab顺序模式来设置,我用windows自带的笔记本程序中页面设置来举个例子:
可以看到,仅用Tab键我可以通过键盘来选择任意一个表单中的内容,因此在这种情况下可以使用编辑Tab顺序模式。
4.2 基本操作
1)添加三个LineEdit和一个Button
2)进入编辑Tab顺序模式
3)相应点击不同控件的数字
4)预览按下Tab键,可以看到不同的控件获得了焦点
如果需要修改Tab的顺序,当第一次按下的数字,则为第一个,第二次按下的则为第二个,以此类推。
五、总结
通过四大编辑模式,仅通过Qt Designer的托拉拽即可完成很多复杂的需求,而不需要代码来实现。