粉丝2.6万获赞8.9万


各位同学好,欢迎大家来到用 p y site 六或 p y q t 六创建 g y 程序微课堂。本节课主要介绍一下应用 p y site 六创建第一个 g y 程序的方法。 在前面的课程中,我们安装了拍摄,并且安装了 p y side 的六模块。 我们也介绍了使用文本编辑器创建运行拍审代码的方法。 这节课呢,我们就使用 p y 三的六创建一个最简单的 j y 程序,并创建简单的 j y 程序。首先呢,我们介绍一下 创建最简单的对外程序的代码,大家看这段代码的第一行, impover 的 s y s 表示引入 s y s 模块。 s y s 模块呢,是 python 的内置模块,负责与 python 的交解释器的交互。第二行呢, from p y side 六点 q t videos import q application kiwidid 表示从 p y side 六的 qtwigis 这个此模块儿下引入 q app q application 类,这个 q application 呢,表示应用程序类。然后 后呢,引入了 kiwidit 类, kiwidit 类呢,表示窗口类。然后呢,我们使用 q application 类创建应用程序对象。 q application 的参数呢? s y s 点 a r g v 用于返回传递给 python 脚本的命令行参数列表。 然后呢,我们使用窗口类 created 来创建窗口对象,并辅值给变量 window。 然后呢,我们使用窗口对象的数这个函数显示窗口。然后呢,我们执行 a p p 对象,也就是应用程序对象的 e x e c 方法进入实践循环,如果要关闭窗口,则返回整数值。 最后一段代码呢,就是调用了 s y s 这个模块的 e x i t 这个函数,它的主要功能是通知 python 的解释器结束程序运行, 如果这个 a p p 点 e x, e c 返回的是整数值,那么它就会关闭这个程序。 下面呢,我们演示实践一下。我们打开 sublime text 编辑器,点击 file new file, 按 ctrl s 保存,我们将它保存在地盘的 chapter 文件夹下,将它命名为 demo。 二点 p y 按 inter 键。首先呢,我们要引入内置模块 s y s import。 然后呢,我们引入 p y side 六的 q t devities, 这个子模块儿下的两个类,应用程序类, q application 和窗口类。 kiwi did 应该是 cuvides import q application 应用程序类,然后是 cuvated 窗口类。然后呢,我们创建 应用程序对象,呃,它的参数呢?为 s y s a r j v。 然后呢,我们创建窗口对象并复制给变量 window, 然后使用 kiwidis kiwidit 嗯,这个类。 然后呢,我们调用窗口对象的数,这个函数显示窗口。 然后呢,我们执行应用程序对向的 e x e c 方法,进入事件循环,如果要关闭窗口呢,它会返回整 数值,我们将它将返回的值复制给变量 m。 然后是应用程序对象的 e x, e c 方法。 如果说要关闭这个窗口呢,我们需要使用 s y s e x i t 这个函数,然后呢,它的参数为 m。 我们创建好这段代码,就运行一下,我们输入 python demo。 二 点 p y 安全条件, 大家可以看一下,他已经将这个窗口运行出来的就是这个窗口。我们关闭一下这个窗口, 我们发现呢,这个窗口其实太简单了,所以呢,我们要创建一个简单的 d y 程序,其中里面要加一些空键。 我们也看一下这个例题。使用 p y side 六创建一个 g y 程序, 设置程序的窗口,标题为第二个 j y 程序,设置窗口的长为七百,宽为二七零,窗口左上角距离计算机屏幕左上角的距离为二百二百。创建一个 按钮,单击该按钮,关闭窗口,需打印 q application 对象的 e x e c 方法返回的数值。 这个题目呢比较长,实际上有一段呢,就是他的要求呢,就是创建一个窗口,窗口中有一个按钮,如果单机按钮会关闭窗口,窗口的这个左上角的距离计算机屏幕的左上角为二百二百,然后 窗口的长为七百,宽为二五七。我们下面呢演示实践一下。 我们在制作这个程序的时候呢,主要是使用了继承的方法来做这个程序,我们也去实践, 打开 sublime text 编辑器,点击 file new file, 按 control s 播放, 我们将它保存在地盘的 chapter 一文件夹下,将它命名为 demo 三点 p y 按 alt 键。 同样呢,我们首先要引入 s y s 这个模块,然后呢,我们从 prom, 应该是 from 从 p y side 六的 q t v 这个词模块 下,呃,引入应该是应用程序对象,然后是窗口对象, 嗯,然后呢,就是 q button, q button 类呢,表示按钮空间。 然后呢,我们创建一个类啊,命名为 window window 这个类呢,继承了这个 quidity 这个类。然后呢,我们写一下它的构造函数, 嗯,双下划线,然后 i n i t, 然后它的参数为 self。 我们要继承负类的一些属性和方法,我们使用 super 这个函数, 然后呢,在 super 点儿双下划线, i n i n t 然后双下划线。 首先呢,我们要设置这个窗口的位置和宽高,这里呢,我们使用了这个继承字 curated 类的这个 set d ometry 这个函数。 set d ometry 呢,这个 方法呢,有四个参数,第一个参数呢,表示窗口距离计算机屏幕左左侧的距离。然后第二个参数呢, 表示距离计算机屏幕上侧的距离。然后呢,就是他的第三个参数呢,表示 窗口的长。第四个参数呢,表示窗口的高。 然后呢,我们使用继承字窗口类的 set window title 这个函数呢,设置一下这个窗口的标题,我们使用 self。 第二应该是 set windo title 这个函数,然后呢,题目的要求是第二个 j y 程序。 然后呢,题目的要求呢, 就是还要创建一个按钮空间。然后呢,我们使用 q pose button 这个类呢,创建按钮对象并复制给变量。八点一,我们使用 q pose button, 然后呢,它的按钮显示关闭窗口,嗯,第二个参数呢,表示它的副窗口或副容器,它的副窗口和副容器呢,就是这个窗口。 然后呢,他题目要求呢,就是要单击这个按钮,会关闭这个窗口。这个时候呢,我们使用了 p y s s 六的信号槽机制,我我们先将 这个代码打印出来。八点一点 click, 点儿 connect self 第二, close 这段代码的意思呢,就是如果说要单击这个按钮呢,它会 connect 连接这个函数, self close, 会关闭这个窗口, self close 呢,这是窗口类的一个方法,这个方法呢,可以关闭窗口。 然后呢,我们写一下主函数 if men, 嗯,同样的, 我们首先创建应用程序,对象 应该是 s y s 点 a, r, d, v, 然后呢我们创建窗口对象,并复制给变量 w i n。 这个时候呢,我们使用我们自己写的窗口类 window, 然后呢我们要显示这个窗口, 然后呢我们执行应用程序对象的 e x, e c 方法,进入事件循环, 我们将它返回的数值呢返回给变量 m, 然后呢,我们使用 s y, s, e, x, i t 这个方法, 如果这个 m 的数值呢为涨数,则通知 python 解释器呢结束这个程序的运行。确认代码呢,我们运行一下,同样呢,我们打开这个 windows 的命令横窗口,我们在其中输入 python demo 三点 p y, 大家可以看一下,我们已经运行了这个窗口,他的要求呢就是单击这个按钮呢,要关闭这个窗口,我们单击一下他已经关闭了,但是有个地方呢,我们要 没有看清楚,就是如果说要单击这个关闭这个窗口的时候呢,这个 m 的数值是多少?我们要打印一下这个 m 的数值,看一下它是否是整数值。然后呢,我们再运行一下这段代码, 按一个键,大家可以看一下这个,按这个窗口,它的长为七百,宽为二百七。我们 单击一下这个关闭按钮,大家可以看一下它返回一个整数值。在上一个案例中呢,我们使用了 p y c 的六的信号槽,就是这段代码八点一点 clicked, 点 collect, self 点 close。 这段代码呢,就是将按钮的单机信号 click 与窗口的关闭槽函数连接。关闭的槽函数呢就是 self 点 close。 其中这个信号是指 p y 三的六空间儿中在某个动作下 或状态改变时发出的一条指令。比如说单机槽呢,是指系统对空间发出的信号进行响应 或者产生动作。通常使用函数来定义系统的响应和动静。比如这个短代码,八点一点 click, 就是按钮的单机信号。 self 点 cloth 就是曹函数,它是一个函数,使用 connect 这个函数将它们连接在一起。 下面呢,我们再做一个例题,使用 p y 三的六创建一个 g y 程序,程序的窗口上呢,包含一个按钮, q pose party 空间,一个标签 q label 空间。 当点击按钮时,标签上的文本发生变化,我们演示实践一下这段代码呢, 我就在这里,就是不敲击的,大家可以看一下书中的 demo。 四这个带呢, 这个代码呢,同样首先要引入 s y s 这个内置模块,然后呢,从 p y side 六点 q t vigis 这个子模块下引入应用程序类, 呃,窗口类,然后是按压按钮类,然后是标签类,这个 cule label 就是标签类。同样呢,我们 创建了一个类,继承了 curatedly, 设置了这个窗口的位置和宽高。然后呢,我们在这其中创建了一个 label 空间,然后并设置了 label 空间的位置。然后呢,我们设置了这个 label 空间,显示的这个 文字是,猜一猜这句诗是谁写的。然后呢,我们创建了一个按钮,按钮呢,它显示的文字为点击我,然后呢,我们使用这个信号槽机制 连接了一个草函数,这个草函数呢,为 self 点 change label 是我们自己写,这是自定义的草函数。 在上面这个代码中的 self dear close, 这是内置草函数,是系统的, 而我们这次呢是使用的自定义草函数,就是我们自己写的,就是如果说要单击这个按钮,会改 变这个标签空间上显示的文本,我们运行一下这段代码,同样我们在 windows 的命令行窗口中输入 python demo 四点 p y 按一等键, 大家可以看一下,这样代码以这个窗口已经显示出来,我们单击一下这个按钮,点击我,他会改变这个标签的文本,我们再关闭一下这个窗口。 改变这个文本最主要的哈方法呢,其实就调用了这个标签对象的 set text 这个方法。对于这个 代码中的 q push button 和 q labor 空间,我们将会在后面的章节中进行详细的介绍。

好,那我们今天一起来分享一些有趣的小东西,比如说我们用 p y q t 去模拟 windows 下的一个计算器, 比如说啊,这个是我们原始的计算器,对不对?他自己点击这个按钮,他有个下拉栏,然后里面有非常多计算器,比如标准科学绘图,那我们用 u i q t 也可以去模拟一下,虽然说没他这么好看,但至少我们可以做一些有趣的东西,是不是?比如说我们在这里他实际上就相当于设置的很多这样的 枫叶,就类似于是我们微信或者 qq 里面的这样的页面,那比如说标准科学绘图程序员等等,那在这里进行模拟,那实际上如果说你以后也要做一个这样的枫叶,你有这个代码是不是 就可以改?比如说里面的内容具体是怎样的,你也是可以改的,是不是?然后现在他没有样式对不对?我们 也可以进行样式添加,然后呢去仿照这个功能去实现,当然这只是一个小小的项目而已,如果说你要仿照 qq 或者微信啊,做一些有意义的东西也是可以的,这个只是说锻炼我们这样的布局能力。还有就比如说如果我们还想要添加一个, 比如说好看的格式,就像这个里面我们是不是添加了一些样式啊?在这个呢就我们可以实现简单的计算,比如说 加,随便我们可以得到一些计算结果归零,这个就是已经实现的一些功能,但这个呢只是有界面还没有进行实现好,这里呢就是相关的代码,如果需要的话,我们也可以一起。

同学们好,欢迎大家来到用 p y side 六或 p y q t 六创建 d y 程序微课堂。本节课主要介绍一下使用 q t designer 设计 u i 界面的方法, q t designer 也成为 q t 设计师。在上节课中,我们介绍了 q t。 设计师的界面,我们也介绍了 q t 设计师各部分的功能。 这节课呢,我们就使用 qt 设计师来设计 ui 界面。我们在使用 qt 设计师的时候,只需要拖拽点击修改空间的属性,就可以设计 ui 界面,创建 ui 界 界面,并且可以将设计好的 ui 界面保存为后缀名为点 ui 的文件,该文件使用叉 m l 格式保存数据。叉 m l 格式呢,就类似于 h t m l 格式。 下面呢,我们做一个例题演示实践一下。使用 q t 设计师设计一个窗口,该窗口上有一个按钮空间,一个标签空间, 并将按钮空间上的文本文字大小设置为十六,将标签空间上的文本字体大小设置为十八,需设置窗体的宽度、高度和标题。我们首 首先打开 q t 设计师,双击 q t 设计师的图标, 这样呢,我们就打开了 q o t 设计师。这次呢,我们选择的窗体类型为 weeded, 然后单机创建按钮。 这样呢,我们就创进了一个窗体。首先呢,我们要修改一下它的宽度和高度, 我们可以在这个属性编辑框中修改它的宽度和高度,找到这阿这阿木锤这个属性,我们将它的宽度修改为五七零, 按 inter 键,大家可以看一下他已经变宽了。然后呢,我们要修改一下他的标题, 这个地方呢是 form, 我们要找到它的 window title 属性,我们将 window title 修改为 visit 窗体。 按 enter 键,大家可以看一下,我们已经将它的标题修改为 wed 的窗体。 我们要在这个设计区域呢,拖动一个按钮,放置在这个地方。我们可以从左侧的工具箱中找到 pose 八台空间,然后将鼠标选中它,并拖拽到设计区域。我们将它拖拽过来,我们可以通过拖拽的方式改变这个按钮的大小。然后 我们可以将它放置在设计区域的任何一个地方。然后呢,我们修改一下他的字体和他的文本。他的字体呢,我们要找到这个放的属性。 然后呢,我们点这三个点,他会弹出一个对话框,我们将他的字体的大小呢设置为十六,然后单击确定。 这个时候呢,他的字体已经改为十六号了。然后呢我们拖拽一下, 然后呢,我们要修改它,修改一下它的文本。它现在的是 pose party。 我们找到 text 这个属性,我们将它的显示的文本修改为猜一猜, 按一个键,题目的要求呢,我们还要创建一个 labor 空间,也就是标签空间。我们在 display videos 下面呢找到这个 labor, 然后选中它,并将它拖拽到设计区域。 然后呢,我们可以通过拖动的方式改变它的大小。同样呢,我们选中它以后呢,我们要修改它的一些属性。 首先呢,我们要修改他的字体属性,找到放的,然后呢,单击这三个点,会弹出一个对话框, 我们将它的字体呢修改为楷楷体字号呢大小呢设置为十八。然后我们单击这个确定按钮。 大家可以看一下,已经修改了他的,修改了他的字字体和字号,然后呢,我们要修改一下他要显示的文本, 显示的文本呢,我们要找到这个 text 属性,我们将它修改为,猜一猜这句诗是谁写的。 输入完成之后呢,我们可以将它保存为点 ur 文件, 我们可以找到文件这个菜单,然后里面有一个保存,然后他的快捷键为 ctrl 键和 s, 然后 我们单击这个菜单选项,然后呢我们可以将它保存在地盘的 type 二文件夹下,我们将它命名为 demo。 一点 u i, 然后单击保存按钮就可以保存了。 在窗体这个菜单下的菜单选项中,我们可以有一个预览选项,我们通过点击这个预览选项,或者是快捷键 ctrl 加,我们就可以查看预览窗口,比如这个预览窗口我们关闭一下, 我们将设计的这个窗体文件关闭一下,我们可以打开这个 代某一点 u i 文件,我们可以在这个地方找到最近的代某一点 u i 就可以打开了, 我们将它保存在了地盘的 type 二文件夹下。然后呢,我们可以打开这个点 ui 文件,看一下它的 文件格式,大家可以看一下它是使用了叉 m l 格,叉 m l 格式类似于 h t m l 格式。 下一节课呢,我们将介绍一下如何将点 ui 文件转化为拍选代码。

同学们好,欢迎大家来到用 p y set 六或 p y q t 六创建 g y 程序微课堂。本节课主要介绍窗口界面与业务逻辑分离的编程方法。 在前面的课程中,我们学习了使用 qt 设计师创建 ui 界面并保存为点 ui 文件的方法。 我们也学习了将点 ui 文件转换为点 py 文件的方法。这节课呢,我们学习一下窗口界面与业务逻辑分离的编程方法。首先呢,我们学习一下 一个概念,正交性。正交性呢,是借用了几何学的概念,在计算机科学中 呢,正交性意味着独立性与简偶性。在良好的设计系统中,业务逻辑代码应与窗口界面保持正交,也就是开发者改变窗口界面而不影响业务逻辑代码。 同样,开发者改变业务逻辑代码而不影响窗口界面。 我们使用正交性设计软件呢,有下面几个优势,可以提高编程效率,降低风险,也易于修改。 我们可以使用 p y size 六进行窗口界面与业务逻辑分离的编程方法。首先呢,我们可以使用 q t 设计师设计窗口界面,并将设计 的窗口界面转换为点 p y 文件。然后呢,我们可以在拍森代码中引入保存窗窗口界面的点 p y 文件,运行显示窗口并编写业务逻辑代码。 下面我们做一个例题演示实践一下。编写 python 代码,引入 demo 一点 p y 并运行显示窗口界面。我们演示实践一下。 打开 sublime tax 编辑器,点击 file new file, 按 ctrl s 保存, 我们将它保存在地盘的 type 二文件夹下,将它命名 名为 m 二、点儿 p y。 首先呢,我们要引入 s y s 这个模块, 然后呢,我们要从 p y side 六中引入 q application 这个类和 q vidit 这个类。 p y side 六 there are qtv d's import q application。 然后呢,我们也需要 引入窗口界面中的这个类,我们打开呆萌一看一下窗口,窗口一中的这个类呢,命名为 ui 下滑线否,然后呢,他是在同一目录下。所以说我们使用 from demoe, 然后引入 ui 下滑线 form。 然后呢,我们自定义一个类 class, 然后是 window, 将这个类定义为 window。 然后呢,我们继承了 ui form 这个类,并继承了 kiwidi 的这个类,使用了 多重继承。然后呢,我们编写一下它的构造函数,双下滑线 i n, i t 然后双下滑线括号。 首先呢,我们要继承负类的一些方法 super 然后呢,双下滑线 i n, i t 双下滑线括号。 然后呢,我们要显示这个界面,我们使用了这个 self 点 set up u i 这个方法 self that。 然后呢,我们编写一下主函数 if 然后呢, man 首先呢,我们创建应用程序对象 q application s y s a r j v 然后呢,我们创建窗口对象,并复制给变量问 window 这个 lake 然后呢,我们使用窗口对象的数这个函数呢,显示窗口。然后呢,我们调用应用程序对象的 e x, e c 这个方法呢,进入事件循环并将它的返回值呢复制为变量 m 最后呢,我们就是如果说要退出这个窗口呢,我们需要调用,我们需要调用 system 这个模块的 e x i t 这个方法,它的参数呢为 m。 我们运行一下啊,这个这段代码 demo 二 python demo 二点 p y and 的键 啊,我们这个地方出错了,这个地方呢,应该有,应该有 self 这个 函数,这个参数按 ctrl s 保存。嗯,我们再运行一下这段代码, 大家可以看一下,我们已经将这个窗口运行出来了, 这是按钮啊,这是标签,这个窗口的标题位为为,这个窗体就是我们创建的 demo 一点 ui 显示的。呃,窗口界面,我们关闭一下。在这个地方呢,需要给大家解释一下为什么要使用多重继承, 这是因为呢,我们在定义这个类的时候,需要使用 qvd 这个类的属性和方法。但是 呢, demo 一点 p y 呢,它只是继承了 object 这个类,它并不包含这个 cuvided 类的这个方法。 所以呢,我们也可以使用单虫,单虫寄虫的方法。使用单虫寄虫的方法呢,我们需要将 demoe。 呃,这个地方呢, object 呢,我们可以将它修改为 q object curated curated we did。 然后呢,我们将 demo 二这个地方呢,呃,直接记成这个 u i form 就可以,按 ctrl s, 我们再运行一下这段代码, 我们输。呃, ctrl c, ctrl v 按一个键, 大家可以看一下。这样呢,也可以,也可以显示窗口界面,我们关闭一下,我们在 恢,恢复到之前的状态。我们这个地方呢是,嗯,原先是 object object, 然后呢,我们这个地方呢,是 created, created 使用多层集成的方法。 下面呢下面呢,我们再做一个例题,编写拍身代码,引入 demo 一点 p y, 并用 运行显示窗口界面。如果单机按钮,猜一猜,在标签空间中显示一句诗,我们演示实践一下。首先呢,我们打开 supreme text 编辑器,点击 file new file, 按 ctrl s 保存, 我们将它保存在地盘的 type 二文件夹下,将它命名为 demo 三,点 p y i in 键保存 这段代码呢,我们直接复制一下这个 demo 二,因为很多代码是重合的, ctrl v 按 ctrl s 保存,我们 运行一下 demo 三, demo 三点 py 按按住键, 同样呢,它可以显示这个窗口界面。题目的要求呢,就是我们要单击这个按钮,标签中的文本显示一句诗。这个时候呢,我们需要使用信号槽, 嗯,信号槽呢,就是 self 这个 pose button post button 呢,就是这个按钮控件的对象名。然后呢, clicked click, 它被单击了,然后连 连接 connect。 然后呢,我们定义了一个曹函数 self, 我们叫 change label。 然后呢,我们自定义这个 草函数 d e f change lago 这个地方呢,需要加上参数 self。 然后呢, 我们首先创建一个磁符串,复制给你变量 str 一,我们这个地方呢,输入一级律师问区纳德清儒学啊,为有原 源头活水来我们这个地方啊,用用这个,那保持。 然后呢,我们更改这个标签的这个文本是这个标签的对象名为 self 点 label。 然后呢,我们使用 set text 这个方法, 使用这个对象的 set text 的这个方法 s t r e 按 ctrl s 保存。 然后呢,我们运行一下 demo 三, 嗯, control c control v i 我们点击一下这个按钮,大家可以看一下,如果我们单击猜一猜,这个标签的文本就会变得问去哪得清,如许唯有源头活水来,因为这个标签呢,它的比较小, 没有全部显示出来,我们关闭一下。这个时候呢,我们就体会到了窗口界面与有逻辑相分离的好处了,下面呢我们就使用 q t。 设计师, 我们打开 demo 一点 u i 这个地方太短了, 把它画的长一点,长一点,然后呢我们再保存为 demo 一,保存了之后呢,我们将这个 demo 一在 转换为点 p y 文件, u i c 点 e x e, 然后呢 demo e 点 u y, 然后呢杠 o demo e 点 p y 按一个键, 他就会重新转换,这个时候呢,我们再运行一下这个代码。三,我们复制一下 python demo 三点 p y, 按一个键, 然后呢我们再单击这个猜一猜按钮,大家可以看一下问去哪得清如许唯有源头活水来,这次就是完整显示的。 通过这个例子呢,大家可以体会到窗口界面与业务逻辑相分离的这种编程方法的好处就是,如果我们单纯的修改这个窗口界面,并不影响这个业务逻辑, 同样呢,我们修改这个业务业务逻辑代码也不会影响到窗口界面。 还有个地方要给大家讲一下如何找到这些空间的对象名 self, 比如说这个 self 是吧台。 我们呢第一种方法呢,就是我们在设计的时候,就可以通过这个 属性编辑框中的 object name 就知道它的对象名,比如这个按钮的是 self 点 postpartum 这个标签呢,就是 self 点 label。 还有一种方法呢,就是我们可以在这个 demo 一点 p y 中找到它们的 他们的对象名,其实他们都是实力对象,实力属性 self 点 pose part, 再往下滑呢,我们也可以找到 self 点 label 这个实力属性。 当然呢,比较好的方法呢,就是我们一在一开始设计这个 ui 界面的时候呢,就记住他们的实力属性,也就是他们的这些空间的对象名。