PyQt5 Qt Designer 新手教程(四)—— 对话框窗体的小结
教程博文
一、前言
实际操作都已经完成了,这一个节就是整个教程的小结。不过,作者的实力有限,就拿大佬的总结稍作修改作为我们这 PyQt5 Qt Designer 新手教程的总结。
二、对话框窗体的小结
-
Qt 设计师提供了种创建用户界面的快速、 简易方式。使用可视化设计工具使得直接看到设计能否“工作"更为简单。Qt 设计师的另一个好处是, 如果修改了设计,加入没有在代码中添加、移除、重命名任何窗口部件,那么就无须修改任何代码。并且,即使添加过、重命名过、移除过任何窗口部件,这些改变对于我们的代码来说都可能是非常小的,因为 Qt 设计师会为我们处理所有的创建和布局工作。
-
使用 Qt 设计师的一些基本原理都总是一样的:先把窗口部件拖动到窗体、容器(比如框架、群组框、Tab 窗口部件等)上,然后,设置这些窗口部件的各个属性。接着,添加一些分隔符来占用空隙。再然后,选择些特殊的窗口部件 、分隔符、 布局等,然后对它们应用布 局功能,重复这一步骤,直至布局了所有一切。再次,对窗体自身进行布局。最后,设置伙伴、按键次序和信号槽连接。
-
实现带有由 Qt 设计师创建的对话框的界面与通过手工代码实现的方法类似。最大的不同之处在于初始化程序,在其中,会简单调用 setupUi() 来创建和布局各个窗口部件,也会创建各个信号槽连接。实现这些的方法仍旧可以与之前实现它们的方法相似(它们的代码也不会有任何不同),但通常会使用 on_widgetName_signalName 命名规范,还会使用@pyqtSlot 修饰符来充分利用 setupUi() 自动创建连接的功能。
-
使用中有一点目前并未涉及,就是使用 ”Widget" 模板创建复合窗口部件(由两个或者更多其他窗口部件起布局而构成的窗口部件)。在某些情况下,这窗口部件的设计可用于整个窗体,而在另一些情况下,它们则会用做窗体的组件 —— 例如, 仅是作为 Tab 窗口部件的一个页面或者堆窗口部件的一页。或者,两个或者多个复合窗口部件可以在一个窗体中布局在一起,创建出更为复杂的窗体来。这样,使得利用 Qt 设计师进行设计并以常规方式来生成 Python 模块的这种用法就成为可能。于是,可以导入生成的这些模块,并在窗体类中,调用每个自定义窗口部件的 setupUi() 方法创建用户界面。
-
至于说。对于诸如到底使用 Qt 设计师所创建的对话框比手工代码创建智能多少、应当采用何种模态形式,如何进行验证工作等问题,实际都没什么两样。但唯一例外的是, 在 Qt 设计师中我们是可以设置窗口部件属性的 —— 例如, 可以设置微调框的范围和初始值。当然,可以用代码完成同样的事情,不过,对于那些只需要进行简单验证的窗口部件来说,在 Qt 设计师中完成这样的工作通常会更为简便。
-
必须用 pyuic5 把 Qt 设计师的 .ui 文件转换成 Python 的模块,无论是直接用 pyuic5 ,还是用 pyrcc5 转化 .qrc文件,这两种方式都可以为源文件生成 Python 模块。
-
如果没有使用测试工具,可以添加一些只有在窗体单独运行时才运行却不影响对话框表现的测试代码,这样的话,无论是对话框的开发还是后期维护,都会非常方便。如果没有对话框所需要的复杂对象,通常可以创建一个能够提供与复杂对象同样方法的“伪"类,测试时,可以向该伪类传递一个实例即可。
-
完全可以通过手写代码的方式完成各类 PyQt 程序,这样的话,什么时候都用不上 Qt 设计师。然而,使用可视化设计工具设计对话框也很有用,因为可以即时看到设计结果,也可以快速、简洁地实现对话框的设计和修改。使用 Qt 设计师的另外一个好处是, 相当多用于创建、布局、连接窗口部件的重复性代码都可以自动产生而无须手工完成。
三、博主的小结
还是挺不容易,将 PyQt5 Qt Designer 这篇教程用自己的手编写出来。博主本来的目标是想要学会使用 Qt Designer,并且希望通过博文的形式也写一篇真正的教程博文,算是圆满完成博主自己定下的小目标。
多的话,博主也不说了,继续加油吧!可视化工具还是很舒服的,所以,博主希望,大家也都能学会如何使用 Qt Designer。
点我回顶部 ☚
Fin.