粉丝1.3万获赞5.3万

power control 是 一款基于 qt 框架开发的专业电源控制与数据采集系统,专为工业级切入式设备如 k k 三五六八开发版设计,实现了高精度、自动化的电源管理解决方案。核心功能一、多界面斜控操作,首页 实时数据监控、波形图标展示、运行暂停停止控制、成控设置、系列参数配置、表格数据管理、 csv 文件导入导出设备参数、 系统配置、电源参数调整、通道设置、通信设置、 modbus 习配置 r s 四八五通信管理二、精准电源控制,支持电压电流输出模式切换,远程控制电源开关与参数设置,实时监测输出电压电流值,自动报警机制,保障系统安全。三、 数据采集与格式化。八、通道模拟量采集卡集成多组实时波形图标展示、历史数据记录与导出功能,数据文件管理 c s v 格式。技术特色一、跨平台架构支持,同时支持 x 八六六十四桌面系统和二尺六四二米六四切入式平台,给予 q t 五六框架提供统一的用户体验。 针对于 k k 三五六八开发版进行了优化。二、高性能通信集成。 linux 酷支持 r s 四八五通信多串口 t s 四 t s 五并行处理,高效数据解析与传输。三、智能化控制,自动化系列控制,多线程参数设置,实时数据处理与反馈。

ok, 今天我们来给大家分享我们的这一个章节当中的第一个小节,那么第一个小节的话,我们都会给大家分享什么内容呢?就是有关我们的 e charts 这个 py e charge 的模块的安装以及导入的过程。那么 py e charts 的话是,呃网上的, 我们叫做社区贡献者,将我们的当前的一叉式的做了一个呃编,做了一个编辑,然后再做了一个封装,然后自己开发了一个这样的一个套件,然后放到我们的网上供我们的一需要使用的人下载。 那么原则上的话,我们现在发现 py 一下子的话会弥补我们在 popi 或者其他的一些 bi 软件当中的不足,那么只要他能够调用我们的一个拍摄的这样一个对象, 那么同时呢能够结合我们当前的呃结合当前的这个模拍摄,那么我们就可以进行相应的一个模块来安装和导入。 那么大家看一下我们当前的一个 pie chase 的一个模块的安装究竟什么样的步骤呢?那这面的话,大家可以看到我们当前的一个数据的一个内容的话是呃通过什么命令呢?就是 pip install pye chase 来进行导入, 那这个的话大家可以看到啊, pip instore py trust 导入之后的话,那我们当前的这个这个数据啊, 可以发现啊,我们当前已经通过 pip 的 imi 文件把它设置为国内的这样的一个镜像,那么这次的话我们可以看到 sdtp, 然后 meres 阿里云点 com 要得到相应的结果,那么 这次的话他会下载相对于那些模块,大家看到 p y e chas, 那么同时会下载一个 p h table, 还有一个 simple g s 都会下载下来。 那么另外的话,像什么金加二,然后 marc safe, 也就 wcys 这样的模块也会进行安装,那如果说你本身已经安装好了话,他就会略过当前的这个环境的安装。 那么我们在这次的话,如果说你希望去显示到当前的一个模块的呃版本以及我们的升级的命令的话,非常简单,我们使用 pip 秀 pye charge 就可以来实现我们的这样的一个安装了。要实现我们的一个版本的显示了,那么版本的显示的你发现说哎这个版本比较老, 那我们怎么样升级呢?那注意一下,我们在哎 pose 和我们当前的卡蒙的谢尔的话,升级的命令会略有不一样,那么在 卡盲的穴里面升级命令的话是杠杠大 u 就可以来升级,但是你在抛下穴的话,要直接在后面杠杠 upgrade 的,这样的方式才能将我们的当前的 pye x 版本升级到最新的内容。 那么另外的话,我们来看一下在我们当前的呃拍摄的编辑器当中,如何来导入这样的模块呢?其实也非常简单啊, 那注意一下啊,我们如果说需要用到什么图,我们最好是直接单独的把这个图的纸库给导进来,因为这样来说的话,就是减少了我们当前运行的 需要的资源。那比如说我们当前的 py charge 的话,导入的是 bur 的这个内容,那我们只需要去创建这样的一个 bur 的对象就可以了,那如果说我们希望在这边当前当中啊,就是导入我们 py 这样的一个 bur, 就是 church 之后呢, 我们同时需要去把这样的一些属性给设定,所以我们这周可以直接把它命名为 op t s 或 op 线,或者其他的任何的东西都可以,那这个的话其实就是我们在其他的一个场景应用我们这个场景的一个内容。 那么首先来给大家演示一下,如果说我们在这里面的话,需要去安装我们的泡泡袖的模块,怎么来安装啊?安装我们的一个 pyx 模块怎么安装?那这次我们进入到泡泡袖的 prom, 那这首的话 and a 困难的话,他会加载我们相应的一些内容,那比如说我们现在给他加上一个叫做 pip install p y e charts, 那这次的话他就开始收集到我们相对那个信息,对,这是我们这里面会发现基本上都已经安装了,所以他会忽略掉一个相应的对哪个内容,然后进行一个安装。 那如果说对我们来说的话,如果说需要去显示到当前的这个版本非常简单,我们 pip 秀 py e x 版本, 那在 开始的话,我们就可以知道说当前的这个模块是的路径位于哪里,然后的话他的版本是什么 都会在这里面有所显示。大家可以看到啊,就是有一个 summer 拍摄 often make tracking either, 然后这边有一个方配,就是这样的一个路径,然后它的作者是陈建东 x, 然后陈建东,然后 qq 点 com, 然后他的 license 授权是 mit, 这是麻省理工啊, 那他安装在哪里呢?安装在这样的一个地方,然后需要什么?需要 simple, jason 和 pretty table 以及金加二的这样的一个内容去构建我们的一个新的这样的 p y e trust 图表。那么当前的话我们在这边可以 看到啊,就是没有任何的其他模块需要这样的一个版本,就说呃,我们当前的这个 py 一下载是一个相对来说比较独立的一个模块,能够实现相对于哪个功能。那这里面这个版本我们想去升级一下怎么办呢?我们直接 pip in store, 然后杠,那不是杠,是那个呃 pye charts, 然后的话我们这里面的话杠杠还不贵的就可以升级到最新的,如果有说有版本的升级的话,他这边话会升级到最新的那个,那么如果说没有版本的 最新的呢?大家可以看到这边的话,最新的版本就是一个一点九点一。那么如果说我们希望在当今 现在我们看到的就是 book 去应用这样的一个内容,怎么办呢?我们打开了就是 notebook, 那么打开之后的话,我们就可以把这个链接复制一下,复制到上面,然后去引入我们相对应的一个 charge, 引入了 charge 之后呢,我们就可以进行我们的一个数据的导入,数就是图表的制作了,这里面的话我们就是 那这种的话,我们在这边就引入了我们的这个数据,然后的话你打开我们任意的一个之前的保存的文件,比如说我们这里面打开一个一, 那么在这里的话我们可以去运行我们相对应的一些资源啊, 那这个的话就是我们看一下啊,他的引入的方法是通过 from, 因为本身来说,我们希望这个整个的一个数据量比较小的话,我们就可以通过这样的一个方式, pye charts, 点 charts, 然后的话音破的,什么音破的?我们的一个图,比如说 bar, 那么这样来说的话就将我们的数据引流进来了,对吧?所以这里面的话其实是非常重要的。那么另外的还有一个就是配置选项也要引流进来, py etros, 因为原则上的话,我们的选项的一个内容啊,可能比较多的会应用应用到比较 options, s, o, p, t。 那通常来说的话,我们在实际的应用过程当中啊,这个的话两个的一个引入是非常非常重要的,因为本事来说基基于这样的一个设定的话是非常非常多的。 ok, 那这个的话其实就是我们给大家分享的有关嗯, pie s 的安装以及模块导入的这方面的内容, 那如果是大家有强硬的问题,可以重复的把这个课程给反复的看一遍,那如果说你将来的说,哎,我不需要不知道怎么去创建我们的新的图标,那没关系,那后面的话你可以在这边, 哎,跟着我们的课程来学习我们最新的一些内容。 ok, 这节课程就到这里,我们下节课再见。拜拜。

我录制一下,那么今天啊,我们这个 qt 给大家上的内容呢,其实是跟昨天的,其实又是属于单独的一个内容啊,相比于昨天来说呢,要简单一点啊,要简单一点,那么昨天我们是相当于是 将整一个软件信息的一个保存,我们用的是一个用户信息管理的一个为举例的,对吧?经典的一个例子啊,那么大家一定要学会啊, 作业没有完成的要尽早要给他提交起来,那么今天的话呢,我们主要学习的目的呢,是要学习学会画图 啊,画图,那么今天画图我给你举例, ok 了,之后的话呢,你后面请你自己啊,去画一个。每个同学我们需要选择提交一个图片啊,利用代码的方式把图片画出来啊,然后呢,你就 提交上来,然后我们就怎么样就就呃,就截图出来,好吧,这样的一种形式,笔记记一下, 这是属于作业提交的一种方式啊,那么 qt 当中怎样画,怎样画图呢啊?画图,那么我们就采用他本身,我们本节课啊,就采用他本身具有的这个功能啊,就是说什么功能呢?每个啊, v 九的 q v 九的都具有的功能啊, q v 九 w id 啊 get 对吧? qv 记者都都具有啊,都自带啊,都自带的功能,自带功能,那么实际上他会继承一个叫什么叫做什么呢? q pnty yes 啊,因为他是默认是继承这样的一个, 呃,累的啊,累的,继承了这样的一个累,他就具有能够在这上面可以画画啊,他自带什么呢?他因为这个 qv 的他是继承了啊,继承了什么呢?继承了这个 q pent 啊, p a i n t 啊啊 pen phand ys 第一 vip 啊,继承了这样的一个类,因为他继承了这样一个类,只要了继承了这样的一个类的这个啊,这些类啊,那么他就都可以用什么呢?都可以使用这个东西啊, 啊?都可以使用 q plun。 我们先来新建一个项目啊,这个就是我们今天的这个项目要添加的这个位置,对吧?零八零六啊,零八零六,这个, 那么这个应该是待会我们要进行创建,对吧?我们要进行创建我们这个文件夹也不需要这里建联,因为我们这个项目创建的时候,他自己会把这个文件夹给建好的,对吧?我们继续打开我们的这个 qt 啊,呃,然后来创建我们的这个项目, 好新建一个,新建一个这个薇姐,对吧?大家要跟上啊,然后呢就是你自己可以嘴巴说一说,这样的话会使得你的思路会跟的更加紧密一些啊, 那么接下去我们要选择还是用这个最为常规的这个位置,好吧啊,我们就用它好了,那么我们今天的话呢,这个所有的东西都写在这个这个窗体里面啊, 这个床前面。那么我们先来理解一下上面这么一句话,我们刚刚说过了, qv 的他是继承于那个叫做什么东西? q plus, 对不对啊?就相当于是一个,是什么呢?这是一个,呃,这是一个一个类啊,一个一个相当于他的负累,对吧?那么这个负累是什么?拥有绘画画布的,相当于他有画布的, 还有个画布功能的,那么这相当于这上面我们自动就用了一个画布,就是不是这个 qq penty ys, 我们点进去之后是不是看到的,我们再回过头去看一下, 这个是我们刚刚的那个 vgt, 对吧?我们刚刚是不是新建了一个 vgt 类啊,就相当于这个窗体啊,对吧?他继承了一个 q vgt, 这个 qvgt 的话呢?哎,这个类他其实是默认继承于这个 p qpand yos, 也就是他就是可以在上面具有一个绘画的功能的,对吧?那么这个 qv 集团里面的话呢?啊,这个拥有这个画布的这个地方我们通过什么时候绘制的呢?我们通过这个事件是进行绘制的,其实每次都是有绘有绘制的,只不过这个世界里面呢,现在没有,还没被我们 被进行利用啊,叫做用这个啊, pent 啊, pentyent 啊, penteenteent 啊, pntyyeng, 相当于什么意思呢?绘制世界 啊,绘制世界,也就是说我们可以调用这个绘制的世界来在窗体上面进行绘画,就我们就相当于自己可以画画了,比如说你想画一个捣乱梦啊,对吧?画一个这个,其他一棵树啊,机器人啊,都可以啊,我们就要今天 的话要绘制一个简简单的图形,这个图形由自己来定义啊,当我们学会这些绘图的一些要点以后啊,自己来定一一张图片来画画出来。那么我们这个事件前面是叫做什么呢?虚方法,看到没有,我求我的啊,喷, 有问题,也就是说这个方法实际上是只属于这个窗体啊,他自己本身拥有的一个事件,那么这个事件啊,是要今天要被我们进行利用的,我们把它写下来啊,那么这个相当于是 啊绘制图片如何来绘制的呢?啊,对吧?我们需要调用这个 q 啊,调用这个潘特野外事件啊,这个相当于是一个绘绘图事件啊,绘制事件好了,绘制事件要调用这个事件 啊,要对应这个事件,那么这个事件里面呢?默认是什么都没有的啊,因为这个事件是谁自带的?刚刚进进去看到在在哪个内裤里面的,在哪个类里面的,是不是在 q 维就特这个里面的一个某个事件啊,对吧?这个事件是 q 维就特啊, 啊,这个类自带的啊,世界他是自带的这样的一个世界,但是这个世界默认是空的,里面什么都没有,对吧?因为我们什么都没有会是不是?那么我们现在的话呢?可以重写, 重写这个事件,什么叫重写事件?意思就是指我们写一个跟这个事件名称一模一样的这样的一个方法,这个叫做重写,那是重写,我们又可以 理解成什么呢?在这里面如果啊重写事件如果负累啊,有某个方法啊,此时子累啊,子累什么呢?需要有一个跟负累 同样的方法名称的,那么这个时候其实叫做重写啊,同样方法名称的 啊,那么这个时候呢,我们可以理解为重写啊,重写。那么这个时候首先你你的重写的意思啊,必须负累啊,他要有这样的一个方法,你此类再去调用的时候才会有,对不对? 那么这里面父子关系我们再来看一遍, q v 的是不是属于负累,你看对吧?我们之前说过继承是使用冒号, 后面加上这个这个类名是属于继承,对吧?这个相当于是负累,这是他的脑子,脑子里面有很多很多的功能 啊,之前我们说过他有一个,呃,最顶层的这个,他是有有一些空间啊,什么什么的,他其实就是一个空间,对不对啊?就是一个空间啊,最顶层的这个空间,他就是一个窗体的形式来实现啊,一个容器, 那么这个的这个名称呢?是我们自己刚刚创建的这个类,这个类名随便是什么,我们自己创建的时候是什么就什么,只不过刚刚我们写的是这个规矩,对吧?啊?叫的是这个名字而已啊,那么我们接下去, 接下去我们只要继承了他,那么就相当于这个子类,他就拥有这个负累里面所有的事件啊,方法啊,他也就负累用的功能,这个子类是不是都拥有啊?那么子累,我现在不满足负累的这个功能,哪个 功能不满足呢?就是那个会绘制事件,因为那个负类的那个绘制事件里面什么都没绘制,那么我想要重写这个绘制事件,我自己定义一下绘制的时候要绘制什么东西, 对不对?那么我们就来绘制的什么呢?就绘制这个叫做喷,是不是要把这个方法名称要重新复制过来?复制过来,那么复制过来,如果说你怕复制不全啊,那那你就怎么样呢?把这个地方直接进去搜索一下啊喷,有问题, 单腿右边,对吧?啊?那么把这个地方通通的复制一遍啊,前面的不用,前面的不用啊,这个是虚方法,要意味着就是后面的子类,我其实其实是可以,这这个虚方法是什么意思呢?并没有,是并没有实现,他并没有实现,他只是有这样的一个 世界,但世界里面呢?具体没有实现,具体没有实现需要什么样?需要我们自己去实现他通过什么实现呢?通过怎么样来实现呢?我们来重写这个世界, 重写这个事件,我们就可以去实现他了,因为我们这样子这样重写这个事件的话,我们这里是不是可以定义他啊?那么我们怎么样把他的定义的具体的这个方法调出来?快捷键, 快捷键 alt 加上回车键,是不是这个里面就是添加具体的电影号,这个就是我们这个实现的。我们这我们当前想想要重写这个绘制世界里面,我们具体想要实现的 是什么内容,对吧?我想要绘制,我要绘制,我要绘制的话,我就要在这个世界里面去写,我才能够绘制出来,明白了吗?好,那么 我现在比如说我想要绘制他,那么想要绘制他呢?我们就需要有一个绘画家,这个内裤,就是这个这个内裤我们称之为绘画者, 绘制者,对吧?绘制者,那么我们需要有一个绘制者,我们才能够绘制他啊,那么我们把这个类呢给他调出来啊,印刻录的包含他 喷他,这个就是不是绘制着啊?这个这个我们用它才能够配置一些绘制,该怎么样去绘制啊?怎么样去绘制啊?那么我们这个内裤首先要把它包含进来,那么绘制的话我们绘制在哪里呢?我们也得说明一下,首先这个是 名称对不对?内裤的名称,那么我们比如说想要想要绘制的话,我们首先要把它进行一次什么呢? 进行一次叫做什么呢?实力化,这个内裤我们是不是每一个内裤用的时候都要进行实力化,对不对?要么是使用指针的形式是就是六,我们不使用指针的形式就是怎么样直接写内裤的名称以及他的类实力对象 就可以了,对吧?喷他,那么我们这里面直接写他的实力对象啊,那么我们这里面如果说这样子的话呢,大家要注意啊,如果说我这样写默认情况下啊,我们我们其实是不知道还没有确定会到哪里啊,仅仅只是就相当于是没有指定他的配合, 我们后面是不是还得指定他的标准的有,有一次我们这个空间那个用那个雷宝,我们没有指定你有雷宝的时候,后面还要 sit plus, 大家记得没有,我们有一次是有一次 字是并没有,就相当于是传代码去写的扭出来的一个空间,那个时候我们是要设置他的胚 rry, 是不是?如果用这种方法,那么我们 我们怎么样才能够就是直接一点,我不晒的漂亮的就知道他的漂亮的呢?我们采用这种形,这种形式也是比较新的,我们第一次讲啊,括号就可以相当于是他的六,什么东西啊?括号就代表他的六,那么我们 s 就代表当前这个类,就相当于是当前窗体, 这个就相当于是什么呢?这一步相当于我们备注一下啊,相当于相当于什么呢?相当于是这个啊, q 天特新号 p a i n t r 等于六 喷他,哎,安琪啊,这就,这就是就同一个意思啊,这两个就同一个意思, 对吧?是不是就相当于是实力化一下,只不过现在这么写而已,是吧?哎,那么这一个写法大家记下来啊,是一种我们之前所没有给大家讲到的啊,这种写法,那么实力化,实力化对象 写法啊,新的写法,我们之前没有遇到过,对吧?今天呢给大家来灌输一下这种新的写法啊,这种新的写法,那么这种写法的话呢,关键你要知道的是他,他是属于局部变量, 对吧?我们是不是没有在呃,前面那个 h 头文件里面去声明啊?所以他仅仅只是一个局部 电量啊,就是这个方法运行完成之后,这个这个变量就会被自动消除,对吧?是这个意思啊,啊,接下去 我们有绘画者了,那么我们其实接下去呢,就可以进行绘制了,对吧?就可以进行绘制了,绘画家有了啊,那么我们绘画家要绘制之前我们要干什么呢?我们就可以应该是可以直接就绘制了,我们先来绘制一下,就一条一句,我们只要在这个事件当中去实现这个 啊,绘画,绘画者,然后呢,利用这个绘画者,就相当于画笔已经有了,对吧?那么我们就要可以画啊,可以画了,偏特,这是我们 t i r nt 幺这个喷头,这个对象,我们用这个对象的很多方法,我们看一下,点一下,点一下之后我们会会发现什么呢?他有很多,嘟嘟嘟嘟嘟嘟嘟嘟,很多很多,对吧?那么这里面的 话呢,我们想要绘制什么的时候,一般来说就是,呃,你记住一个共同点就行了,设置设置赛啊,赛特就是设置画笔的,对吧?这是一个,另外一个想要画的话呢,有一个单词必须要记住点, solo dra w grour, 就是是绘制, 具体要绘制了,要绘制什么类型?后面有很多,第一个绘制丙图的 p i, 第二个绘制直线的拉。第三个绘制路径,是指你先设置好路径,完了之后呢,根据这个路径一次性绘制出来 啊,这个相当于是把一个路径全部定义好,相当于这个路径相当于,比如说我定义什么呢?我先移动到一个点,然后从这个点绘制一条线到另外一个点,然后呢我再从这个点再绘制一条线到另外一个点, ok, 然后把这些打包到一个一个 个对象当中,要一个变量当中,然后呢把它绘制出来啊,绘制出来。那么这个是什么呢?绘制 i e ct 矩形 reton 九啊,瑞克探,瑞克探格矩形啊,矩形。那么这个呢?是这我们待会会一个一个给大家来展示一下,看一看啊。这个呢是指绘制的时候我们写文本 就写写字吗?我画的时候我也我也可以写字,对不对?我们这里其实只要输入文字,他就会自动绘制出来了,就这个意思。 那么后面的话呢,我们常用的啊,这个这个我我我也不知道啊,大家回头去查一下,因为太多了。好吧,那么这我们常用的啊,常用的图片肯定也会用到,比如说我们把一张图片绘制进去,对吧?这个有点像什么呢?这个就有点像网页里面的 有点那个叫做记得起了,记得起来吗?康康了,是不是,是不是有点像开卧室啊?哎,就很像这个就有点像开卧室的这个意思了啊,你好像这些方法名称啊,用的时候都差不多,这个就说泡你的什么意思啊? 绘制一个点,对吧?我想要在哪个地方要点一下,哎,就用这个,哎,对吧?哎。那 还有这个九幺佩斯那个什么意思啊?那不是,那个也是绘制图片,只不过可以配置佩斯曼对不对?哎,就传入的对象不同而已,是不是啊?啊,等等啊,这个地方碰一次呢,就绘制多个点吗? 对吧?哎,其他的我们回头可以再去自己去查询一下啊,他的有些意思,但是常用的几个 直线,矩形,直线我们可以用来干什么?绘制折线图对不对?矩形我们可以用来绘制什么啊?就是一个柱状图形对不对? 然后弧线可以用来绘制什么? arc, 现在我们第一个,现在看一下,第一个 arc 是指绘制弧弧线,弧线我们可以用来绘制什么东西了?半圆曲线都可以,是吧,那基本上就遇到这一些吧, 是吧?常用的这些,那么我们基本上都知道怎样的方式去绘制了,那我们现在来绘制第一根最简单的这个叫做线啊,这个线保存一下,鼠标不见了。啊,好,那么觉什么呢?我们先来第一个会 是线啊,第二 a w 烂好了就要烂,那么绘制线的时候注意啊,我们这个地方有好几个参数可以全录看到没有,写完以后第一个节点他会教你可能会成为一个线的这样的一个类型,这样的一个对象,对吧?你可以用第二个,还是一样,只不过不同的类型而已, 对吧? q 来 f, 这个是 q 烂啊,那么这个哎,我们发现这个方法最好理解了,第一个 x 一,第二个 y 一,第三个 x 二,第四个 y 二,那这个就非常明确了,什么意思啊? x 一 y 一表示 起点哎,起点 x 二, y 二表示终点表示终点啊,就一个起点,一个终点好了。一条线吗?一条线是 怎么构成的?两点构成一条直线,对不对啊?那么我们先来试一下啊,比如说我们让他从左上角,我们窗体左上角是这个点是什么?零零好,那么就零和零好了,那么窗体的不要右下角好了,我们直接规定一个点好了,比如说让他到 到窗体中间的大概某个位置,比如说三百,三百,这可以我们自己规定的,对吧?三百 x 就是相当于是横横向距离窗体是三百这个位置啊,我们纵向也让他距离 三百这个位置,是不是一根斜线,这样向来应该,对吧?也不一定是对角线啊,对吧?对角线是得是得窗体的右下角那个点,你给他确定才可以,对吧?那我们这里面呢,直接只是规定到某一个点有起点和终点,是不是?设置好了, 我们来设置看一下 ctrl 九加二,看一看位置的情况有没有啊? 数学来了,又来了啊,我们看看这个可能比较长啊,对吧?让他到到这个位置,对吧?这是零零,对不对?这是零零啊,这三百,三百啊,他因为刚好好像有点像个巨星啊, 啊?也不是句型,对吧?也不是句型,呃,也不是,也不正方形,哈哈。就是某个句型吗?他没有到右下角这个点啊。啊?那么我们比如说想要让现在我要绘制一个水平线,这个是 斜线,对吧?我会这个水平线最后一个三百改成啊,三百改成零,但是三百改成贴 屏幕了,那么不要让他贴贴屏幕,说是把它变成变成二十,可不可以第二个零啊?那么我们这个零也要变成二十,现在是不是歪轴相同,相当于是那么高度相同,然后呢?呃,水平方面不同,那是不是就相当于是个横线啊? 我们再来看一下,这是绘制一条横线,刚刚是一条斜线,对吧?现在应该是一条横线,那横线会了,那么竖线是不是也会啊?横线会,竖线会,斜线会。我是不是像那直线图能搞定啊? 能不能搞定了?可以搞定了,对吧?啊?那么我们这个叫做绘制线啊,这个地方注意啊,首先绘制线写下来笔记,接下来啊,我们就是画直线,画直线, 对,画直线。举例啊,画直线怎么会呢?偏特点,九儿来,对吧?这个是相当于是这个解释一下九儿来他有好几种用法,这是我们其中的一种用法, 其中一种用法零二十表示起点啊,这里表示一下啊。备注,零二十表示起点啊,表示起点, 三百二十表示终点,对吧?好了,那就 ok 了,这个我们就绘制一条直线,我们也我已经绘画了啊,已经绘画了,那么接下去我们再来举例看一下。呃,其他的,比如说我们再来绘制一个其他的东西, 我看看还有没有啊?画其他东西喷他加 nt 啊。点九儿是不是?九儿是一个绘画啊?我们现在来画一条叫做曲线, 曲线弧度是不是 arc 表示弧度,弧度表示一个弧度的这样的一个线啊?弧度的这样一根线,我们来看一下他要传入的是什么东西啊?我们第一个他是指传入一个矩形,然后后面呢? 这个地方有几个参数啊?第一个参数是指什么的?弧度的起点弧度,起点角度,后面一个角表示跨越角,跨越的跨越多少角度 啊?那么我们接下去我们再来看啊,这个前面还有其他的参数,这个这种方法,这种方法相当于是我们他就像 大于规定了从哪个点开始了,对不对?哎?哪个点开始?所以说大家一定要学会看他的几种重载方法啊。这个这个重载方法我们好像表示用起来好像好用一点,对吧?那我们可以用它,当然其他的那些也是可以的,你要那你就要先构造一个这样一个类, 还行,对不对?那么我们就先用最简单的直接可以使用的一种方式,好吧,直接可以使用的一种方式,那么表我们现在比如说让他从让他从三十三十 这个点作为起点开始画弧度,好不好?开始画弧度,那么画弧度的话呢?我们让他这整个弧的一个宽度和高度,我们其实是可以设置的, w 表示 ysh 表示 hit, 对吧?宽度和高度 啊?宽度和高度,我们来设置一下整个湖,我们想要画的时候,他是从哪个位置?总共有个起点的一个位置到一终点的一个位置吗?对吧?哎,好,那么我们现在就来开始来,比如说我们让他变成 宽度为一百,高度我们两百,假设是这样啊,假设是这样,或者我们宽度高度都为一百,反正这个相当于是一个巨型,这样的话是一个什么什么型? 正方,正方形,对吧?这个正方形我们看起来可能好好理解一点啊。好,接下去,接下去是什么呢?接下去是指 开始的这个角度,这里面要注意开始角度转弧度之间差十六啊,差十六分之一,这是一个一比十六的关,一个关系一比十六的一个关系,也就 说一度等于十六等于十六,哎,十六分之一的弧度, 哎,一比十六,对吧?那么我们现在,现在我们想要求弧度,相当于是要在原来的角度的基础上还要再乘一个十六,再乘一个十六,就是等于他的弧度啊, 角度转弧度啊,在这里面,哎,这个是不是数学理由公司啊?好,那么在,呃,反正在这里面呢,我们就 记住一下好了啊,记住一下,弧度的十六分之一就是代表一度啊,就代表一度, ok, 我们在这个地方,我们来,比如说让他从,呃,从,从,假设让他从三十度吧,从三十度开始,现在我要转成弧度的这个相应的 长度是不是要乘以十六,乘以十六, ok, 现在我比如说让他从三十度这个位置开始嘟,我先让他,比如说变到一百四十度,可不可以 跨约一百四十度啊?跨越一百四十度,成最后的一个节点啊,成最后的一个一个位置啊,那么我们, 呃,想象一下啊,这个需要,可能要需要一点想象力的啊,然后或者是你手要画出来,我们待会可以给大家简单的画一下,对吧?呃,那么我们比如说让他变成一百四十度啊,然后再乘以十六,这个是弧度,对吧?啊?成一个这个地方是一个最终的是一个弧度啊。跨越角度,比如跨越了一百 四十度,那么相当于是一百八十度还没到吗?对不对?哎?没有相当于没有到平吗?一百八十度的话,应该是从从这个位置到这个位置 啊?一百八十度。好,我们现在来看一下这个画出来的这个壶应该是一个怎样子的,你想象的跟他画的是否一致?从三十度的这个位置的一个起点 跨越一百四十度,想象的出来吗?他最后的结果现在是这样,你看一下这 这个地方是三十度的这个起点,你看这个线,我给他画放大,你看这三十度,这里作作为一个起点的,对吧?丢,这样是不是三十度啊?起点起点的方向 是三十度。好了,现在跨越现在他的宽度是要从这个东西地方跨到这个位置,也就是说他的宽度是这里刚我们设置的巨型的宽度,是不是这个巨型宽度设置的是一百,高度也是设置, 一般就现在是宽高都设置的是一百的情况下,哎,宽高是设置的是一百的情况下,我们让他要转了一百四十度, 也就是说从这个方向,哎,你看一下最终的终点的这个方向是变成怎么样?是不是变成这样了?这样了,哎,就原来的三十度的情况下转到一百,转了一百四十度,然后现在就变成了相当于是,哎,有点没有,就相当于是这样的一个东西, 对吧?从这个位置转到这个位置啊,那么最终就最终就形成了这样的一个动,现在我们这里面啊,一个是这个啊,现在我们看到他绘制绘制出来的线是不是有点曲曲弯弯的 啊?那么能不能改变他的这种情况呢?可以的啊,我们来使得这根线可以当他画曲线的时候,我们 可以设置他的平滑度。是否平滑啊,我们可以设置一下让他平滑过度啊,平滑过度,然后我们就来设置一下平滑过度。怎么来设置呢?喷特还是一样啊,喷特点这样子 什么呢?呃,塞塞成一个 h 开头的,有点忘掉了设置他的平滑度啊,我们来看一下啊。 呃,我们一个个看一下,看看是哪一个啊?是这个渲染出来的,他的一个 渲染出来的一个一个情况啊,渲染出来的一个情况。 rend 是指渲染对不对? rend 是渲染,那么我们来设置他的一个渲染程度,渲染的话呢?使用怎样的情情况来渲染呢?让他使得他平缓 选了,那么石头大平滑的话,我们这个喷头里面他有自带的一个叫做参数啊,配好的给我们 q 喷头皮 a i n t 啊,片头里面呢,还有个静态,静态的一个静态的一个属性叫做平滑。 ann toline c 啊,这个是指平滑啊,这是他的一个平,使他使得他平滑。是否平滑吗? que 啊,这是他的平滑程度为使其平滑为 q 啊,这个就是平滑的,对吧?默认是不平滑的啊,那么我们现在在 ctrl 加 r 来看一下这个时候他是否弧度的这个过渡的时候是平滑了, 是不是有点模糊的那种感觉了,就有点平滑了,是吧?是不是啊?哎,这就是这就是是他平滑了,刚刚的话呢,其实就看起来糊, 弯来弯去的,对不对?现在就是有点感觉有点哎,让他糊一点哎,稍微糊一点就是有点好像就就没有那么那么样子的,对吧?哎,这个叫做对,这个叫做死期平缓啊,他只能做到这个程度了啊。啊, 那其实以这样看的话其实也还好,对吧?这个叫做设置使其平衡,请你记下来啊,设置渲染 啊,这个是画线,对吧?接下去我们就是设置渲染,渲染渲染模式啊,设置渲染模式,然后呢使其使得什么平滑?渲染 平滑圈,这个有点像 ps 里面,对不对? ps 的工具,我们不是打上那个勾就会使得这个线不要让他有,那个叫做什么锐,不要锐化啊,然后还有一个呢,还有个叫做是使其平衡,有这个选择的啊,佛的效果里面啊,那么我们这个这个设置就是 这个代表平滑啊,这个啊代表平滑代表平滑。维 q 的话呢是 是平滑的啊,看到没?是平滑的,这个是这样的啊,这是这样的,这个是设置渲染啊,这个是设置渲染。好了,那么我们接下 下去我们相当于是弧线也会画了,对吧?弧线也会画了啊,那我们再来看看其他的一些线啊,其他的一些线,那么接下去其他的一些线是什么线呢?我们再看到他这个地方偏头 里面其他的一些线的一些用法啊,点啊,这个地方还得还露了一个手机了,叫做什么呢?弧度跟角度关系的一个一个知识要点,对吧?画弧线, 画弧线,接下来记好啊,画弧线,画弧线使用的是 arc, 九号 arc 叫 arc, 这个三十三十表示从哪个位置开始,对吧?我们依次解释 试一下啊,三十三十表示开始绘制位置啊,一百一百呢,相当于是给他规定一下范围, 对吧?弧度一百一百表示弧度绘制范围,范围分别表示 范围,表示宽高啊,宽、 高。那么接下去最后了,最后有两个点,对吧?最后有两个点,这个呢表示的是起始角度啊,起始角度,这个表示起始弧度, 现在是七十弧度,对吧?然后这个地方是一个跨越弧度, 这个表示跨越弧度,跨越弧度。好,那么这样的就全了,我们在这里面的话呢,要注意的是, 呃,一度啊,一个弧度在这里面表示的是十六分之一度 啊,三十啊,起,起啊,起始,起始弧度,对,起始弧度很好啊,起始弧度,对吧?哎,那么这个地方有个十六分之一的关系,大家要注意, 我们角度乘上十六等于弧度啊,在这里面有个哎,我们就可以这样记,角度乘上十六等于弧度, 好吧,这其实是一样的吗?角度乘上十六等于弧度,那么我们这个地方要注意一个十六的一个关系啊,十六的一个关系。 好,接下去我们再来看其他的啊,再来看,比如说我们现在还要就是绘制一个矩形的喷头点, 就说啊,这个比这个比如说是一个丙图的,对吧?这是一个丙图的啊,丙图其实也是一样的啊,丙图也是一个弧线类型的,对不对?其实就是在 差一根线吗?就是从起点到终点那个那个地方吗?对不对?那么呃,在这里面我们比如说用丙图来绘制一下啊,丙图来绘制一下,丙图的话,我们这个地方也是有一个,你看起点,然后呢?丙图的大小,对吧?啊?又是起起始位置 宽的位置,只不过他就是一个有点有点像扇形的,对不对?那我们来看一下啊,这个地方我们比如说起始位置总比是是五十 五十啊,啊,宽高,我们比如说还是一百一百啊,那么我们此时再加上他的起始弧度,比如说我们让他从零度开始吧,然后让他画九十度,相当于是四分之一的圆吗?对吧?哎,那么我们让他画九十度,那就是九十乘上一个 十六,我们再来看一下他的效果,对不对?从这个位置开始的零度画九十度,是不是这样啊?好,那么这个 就是绘,绘制这个方法就绘制什么呢?丙图绘制丙图,丙图用它 啊,有就用它,这个有点类似于什么弧度,对不对?类似于弧度绘制的用法,我们一看参数就知道了,对吧?哎,那么接下去我们再来看啊,绘制一个矩形, 绘制一个矩形偏头点、猪肉,这些我们基本上都用了,对吧?这个没有用过吧?矩形矩形, redtung 啊, redty go, 矩形的话我们肯定是有相当于是怎么样绘制的?我们来看一下,首先要规定他的,就这里,这里面不就是一个矩形吗?绘制我们丙图跟弧度的时候,前面相当于不是一个矩形,对吧?那么绘制矩形的时候,起点的位置还有他的一个宽高就行了, 对吧?哎,这点位置及宽高就可以了,那么我们比如说让他从两百、两百这个位置开始绘制,我们宽高分别让他一百、一百,那么是不是一个居正方形啊?是不是一个正方形啊?我们来看一下,是不是 是绘制出来一个正方形,正方形是不是句型是特殊,哎,正方形是特殊的句型,看到了吗?哎,两百,两百这个位置开始绘制宽高,这个是绘制的起点,然后呢宽高一算,这个宽高一算就是相当于是向自动向下了,对吧?这里面大家还是要注意啊, 这个是惠州的起点啊,这是惠州的起点,那么我们比如说让他往上移一点,怎么移?我挨轴变一下是不是就行了?我挨轴现在刚刚是两百,我们让他往上移一点,就把它变成一百,往上移一半啊,我们是不是就往上移一点了, 对不对?现在是王爱哲是一百, x 轴是两百,对吧?哎,这是一个这样的一个句型啊,一一个句型,那么比如说我们想让他绘制一个长方形,稍微变化一下就可以了。宽高,我们比如说让他宽要大一 快,让我们变身一百五,一百五,假设这是不是就看出来了?再来看一看, 这是一个句型了啊,那么我们这样子的话,可以绘制柱状了,也可以绘制了,对吧?啊?那么我们还有一种就是记,嗯,先把它记下来啊,绘制矩形, 绘制矩形图,绘制矩形图,那么这个的话呢?就是这也也有点类似于之前的,对吧?这个表示起点, 这个表示起点。绘制起点啊,后面这个表示绘制宽高, 这个表示宽高,一个宽一个高,对吧?第一个宽,第二个高啊,好了,那么绘制 ok 了,那么这里面的话呢?最后还有一个叫做特殊, 有时候我们可能会用一些特殊的一些一些填充,填,填充啊,填充,我们怎么填充呢啊?填充的时候我们用一个费用,对吧?费用费用,费用,费用是什么呢?费用的时间就是填充的时候我们填充一个矩形, 对不对?是不填充一个矩形,那填充的时候最后是不是要有一个画刷?他是使用一个画刷的来进行填充,那前面的是不是都一样宽高什么的,对不对?那么比如说我们让他出现在另外一个位置啊,我们画一个红色的正 方形,红色的正方形,比如说让他从从一百一百这个位置开始画红色正方形,正方形是不是也是要一样啊?啊?红色,接下去还差一个参数,最后一个参数叫做什么呢? q, 是指笔刷 啊,笔刷,笔刷我们就可以设置他的颜色了啊,我们我们如何来写呢? q, 不是他需要这样的一个类,对不对?我们直接在这里进行实力化啊,这样,这样是不是就直接实力化了?是不是他的构造方法?那么这中间我们这样的话,默认什么都没设置了,对不对啊? 没设置还是空的啊?还是空的。那么设置一下他的颜色,我们刚刚是不是说过了一个颜色啊?颜色,我们这里看一下,这里是不是有个参数,默认是一个叫做卡路的一个参数啊,哎,那么我们在这里面实力画一个卡路 q 卡路啊, 这个对象好看了的时候,我们发现在这里面,哎,这个是不是很熟悉? rgb 再加上最后一个是什么意思?哎,透明度,哎, 是不是很有意思啊?可以马上 ok 了。那么红色第一个参数就是最大化二五五,跟我们 vb 当中是一样的啊, 绿色为零,蓝色为零,那就 ok 了,最后个参数我们就让他不变好了,对吧?哎,好,我们来看一下,应该是一个红色的正方形,从一百一百那个位置开始绘制的, 一百一百这个位置 x x 这个点,你看这里为一百,外周为一百,对吧?哎,然后绘制一个一百一百宽宽高的一个正方形,好,那么我们实际上我们,呃基本上的这种绘制也都 ok 了,对吧?那么这个是属于填充 填充绘制填充绘制句型,填充绘制句型啊,这,那用的是这个,对吧?那这里面的话呢,这个表示比 我们就说明后面就可以了啊,前面都一样的,这个表示笔刷,笔刷对象啊,这个表示颜色对象,后面就是 垃圾币了,对吧?这个表示颜色对象啊,要全录,全录,分别要全录这个什么对象?好了,那么这些其实讲了那么多的话呢,大家基本上就是一些基本的图形都是可以绘制了,对吧?都可以绘制, 那么我们接下去啊,我们来简单的绘制一个坐标轴啊,简单的来绘制一个坐标轴,举个例子好了,把这些东西先给它去掉。绘制坐标轴,我们使用需要使用的最基础的线是什么线? 直线,对吧?我们现在举例绘制一个坐标轴啊,绘制坐标轴, ok, 那么绘制坐标轴,我们首先需要有一个横坐标,对不对?横坐标,我们先来绘制一下横坐标,横坐标,我们假设绘制到从 x 轴从十这个点开始好了啊,啊? y 轴,我们距离让他距离多少?假设让他距离一一两百啊,然后呢?横向绘制绘制两百这样的距离啊,我们来画一下凯特 喷特点,绝了,绝了,来,对吧?好,我们首先第一个点,我们刚刚说过了, xo 让他 横向水平距离时,好了,我们因为待会还要绘制,我挨走了,所以我们要留点距离给我挨走,是不是高度要稍微高一点?起点的高度要高一点,起点高度高一点,我们让他变成。呃,讲述我们让他变成三百 啊,这是起点对吧?终点,我们终点的话,我们是不是高度应该也是三百?这高高度三百,那么我们中间还 有一个就是绘制多少宽了,这个是没招宽,我们就讲述让他宽的话,我们这里算的时候其实是从这个十已经去掉了,对不对?那么如果说绘制宽为两百的话,我们 这个地方应该是多少?是不?两百十,对不对?对不对?两百十减去十,两百两百,对,对吧?那么这就是一个水平轴,哎 啊,太,太下面了哈,太下面了,太下面了,我们把它再小小一点好了啊,对, 小一点好了,那就两百,两百这个位置开始位置也是两百啊, 就是这个,那我发现可以是还其实还可以绘制过去一点啊,再加个一百好了,三百好了, 好,这就是 x 轴。 x, 这个我们叫做水平轴啊,水平轴我们在这个位置写个文字好不好?代表一下水平轴这个位置,那么写文字怎么写?我刚刚说过了,哎,主要太,对吧?拼车 点九二 tx, 对吧?那么 tst 从哪个位置开始绘制?是有哎,哪个位置呢?你看这里面 xo 和 yso 是不是有啊?哎, 那么 xo 我们就是两百十,比如说,比如说我们从两两百,两百这个位置差不多,让我们待会可以调节一下啊,高度的话肯定是多少两百,跟我们这个一样,对吧?或者你可以再往下一点,往下十吧,这个就在这个线的这个下面,对吧?好,我们那么会 的时候文字是什么文字呢?比如说,就是,呃,水平轴,对吧?水平轴啊,我们来看一下 文字的下方,我是不是可以往往右移一点啊?往右移一点,那么可以说大概的往右移一点,往右移,是不是以这个水平走啊?啊?比如说,呃,这里面,是啊,这个因为是有三百,我改过了啊,那我们就比如说改改,改成三百, 三百好了,好,三百好了,那么 假设就就这样好了。哇,我们意思已经到位了啊,那么水平走,我们过来的时候是不是还得绘制一个一个这种点?比如说我们让他每隔现在有三百,我们给他 均分一下,均分一下,假设我们三十一个点给他,给他就相当有十个点,对不对?我们均分一下,三十一个点,一共有十个点,那么我们这个时候是不是可以用一个循环来表示啊? 啊?循环来表示,那么循环如何来表示?我们先把这个这个要点写下来啊,绘制文字,绘制文字啊,使用这个主要看绘制文字。 好,我们来现在用一个循环来分割水平轴,分割水平轴啊,分割水平轴如何来分割呢?用一个循环,这个循环我们刚刚算出来了, 三百的话呢,我们十个点就是十,好了,对吧?哎,我用一个爆循环啊,一个爆循环,这个爆循环里面是怎么样的啊?第一个点 哦,哎,我们让他假设从零开始啊,十个点的话,哎,小于多少十吧,对不对?哎,哎,加加啊,哎,加加,那么这样的话呢,我们待会可能会不利于我们的计算,如果想要让我们有力计算的话呢,我们可能要从一开始, 对吧?一开始的话这个地方十个点就是小于十一,是这样子吧,那么我们先来先来简单的画一下,待会看实际的需要好了啊,那么我们画的时候的话呢,肯定这个地方要写一个画直线,这个直线肯定是从上到下,或者从下到上,只不过他的水平轴是不同的,对不对?那么我们这里在会 的时候,我们现在知道两百是指这个水平方向上的这个走,我们让他往上一点的话,比如说往上十这样的大大小来做一点一点分割是不可以啊?啊?那么我们就一百九,是不是?高度是不是就 一百九,高度肯定是不变的,那无非就是,哎,哎,等一下,高度是变的啊,高度应该是变的,对不对?是变的,从这个到两百,从一百九到两百,对吧?这是高度啊,高度,那么水平 距离变不变应该是不变的,应该是啊,那么下一个点是要变的,对吧?当前这个点是不变的,那么假设 当前这个点,我们让他从呃,十这个位置开始,十这个位置开始,那么我们这这个应该有个十了,对吧?这个应该也是一个十吧,对吧?是不是想的通的啊?那么我们让他,比如说第一次是十,第二次是二十,是不是 十十乘一,十乘二,十乘三,十乘四,啊?是这个意思吗?啊?那么我们接下去就只需要发现乘一、乘二,乘三、乘四,我们只需要把这个地方乘一个 x 就可以了,我们在在这里改一下,改成十个点, 是这样吗?来,那么我们就呈上一个爱好,这里呈上一个爱,我们来看一下,此时应该就已经分割了这个水平轴了,意思是啊啊,但是并没有, 但是并没有水,完全的分割,对吧?那么这个仅仅仅只是多少个?我们因为现在水平走是多少?是三百,三百,对不对?三百的话应该要三十个吧,三十吧,对不对?我们这里是不是只有十个?三十个怎么搞?三十 改成,改成小于三十一数就行了,哎,那么我们继续来看一下,这样是不是都分割了?这是不是都分割了,对吧?都分割了,那么我们这个点其实是不需要我们分的,对, 对,原点这个点不需要我们分的,是不是让他往右一个,那往右一个,让他是不是要从二这个位置开始了?哎,那就应该要从二这个位置开始,是这样吗?那,那我们来看一下。哎,那 如果说我们最后一个点如果要有的话,那就要变成有个三十二,那么这个地方我其实不需要的话,就给他画一个斜线,做一个箭头,是不是可以啊?是不是这样子啊?那我们这个斜线我们假设现在就先不画啊,哎,这个点好像也挺高的,我们可以简单的变一下,一百九十五, 要不然的话会出来有点太难看了,太高了,对吧?好,那么 我们这样子的话,水平轴就 ok 了,那歪轴是不是也是类似的?我们迅速的把这个垂直的这个歪轴来歪轴啊,然后接下去来, 哎,绘制歪轴,对吧?绘制歪轴,那么绘制歪轴的时候我们就是怎么样呢? 换一下,换一下,换一下就行了,我们先把这个把这个做一下,那么首先歪着的话, s 我们其实让他可以起点,让他从哪个位哪个点开始啊?从,其实让他可以从从那个上面的这个水平轴的起点为止开始,好了, 对不对?而水平轴的起点应该在哪里呢?是不是十二十这里啊?十两十两百这里啊,哎,让他往上而已,往上而已,往上的话就是把他的这个还是,哎,这个水平轴不变高度,把它变成变小一点,比如说让他空出上面空出个十的位置, 对吧?哎,是不是这样?我们来看一下,那么往外走,我们就是不是已经 ok 了?当然你如果 一次性想好熟练了的话,马上就会脑子里面是不是就有了,哎,然后呢,我们就把我爱走来分割一下,哎,分割我爱走,哎,这,这,这就有点类似了,对吧?也是分割成多少份?比如说 y 轴, y 轴变的是什么?变的是 x 还是 y? y 了,对吧? y 了,那么我们相当于是 x 轴是 一直是不变,那么 x 不变,那么假设我们现在让他从让他画在内部啊,这个点,比如说让他画在内部,不是画到画在线的右边, 是画的线的左边啊,那么画到现在右边的话呢?我们应该起点的位置应该在哪里?十的这个位置对不对?十的这个位置,从十的这个位置,我们应该要把它跑到哪里呢?啊?假设,哎,对, 我们前面是五的这个线,我们就让他变成到十五,这是水平轴,歪轴,我们是不是要依次变化?我们给他切割成三,这里多少份啊? 高度是多少?一百九,一百九吗?一百九。我们假设让他切成十九份好了啊,假设让他成切成十九份, 切成十九份,我们这个地方就比如说小于二十,对吧?小于二十,然后呢?这个地方就是十乘上一个,哎, 这里面需要大家有一点点想象力啊,对吧?需要有点有一点点想象力啊,如果想象力不足,你就一个点一个点的绘制,边绘制边取得经验,对吧?使得你的想象力进一步的提高啊。那 往外走,我们就这样就绘制好了,然后这里面我们来旁边绘制几个字,这个点是什么点?最上面这个点是什么点?十十 终点,我们是不是实时啊?哦,对不对?是不是这个点是有终点啊?是啊,哎,那么我们在这个点的这个位置来绘制一个文字啊,就是说是喷头 啊, t a i n t 啊啊?喷头点,主要 ts 对不对啊?大家记住啊,这个要跟上啊,要比如说我们这个地方表示什么呢?表示,呃呃,这个,呃,这个 就是变成创造城市点击量可以吧啊也是可以的啊,编程创造城市网站点击量,假设是一个点击量如何,对吧?我们假设 现在要做一张点击量的一个折线图啊,点击量的一个折线图好了啊,就这个地方就是表示一个点击量,待会我们要要表示了,这个地方就是一个零零,我们是不是要会这个零零啊?一般是不是要会有个圆点的圆点,我们 是零零还是叫什么?假设叫零零好了,对吧?零零,那么我们写写个字好了。圆点啊,好, 原点原点原点文字,原点文字,我们来学一下喷头点绝了。原点在哪里呢?刚刚 还记得吗?十 x 走肯定是在十这个位置对吧? y 走我们是在 两百之前在两百对吧?我们让他往下一点就是两百时啊,两百时好了,那么两百时我们接下去 写一个文字就可以了啊,比如说是括号,我们一般是零还是零?零零逗号零零,逗号零,对吧?是这样表示的吧,好了这是一个,我们也可以看一下, 那么哎好了,哎,零零好了,或者是哦也可以的啊,也是可以的, 那么我们其实的话呢,我们在这个每个点的下方其实要绘制一些一些字的呀,这个点的下方可能要绘制些字的呀,是不是要可能不就是复循环里面再加一个,哎,复循环里面加个 cas 是不就可以了啊?很好啊, 好,我们来比如说水平轴加这个数字啊,水平轴加数字把它复制一下对吧?把它改成 那么他是呃应该是在他的下方,下方是指在歪折的二百二百十差不多对吧二百十差不多那么二百十差不多的话呢我们再接下去啊。对对后面是文字了啊 这个文字这个文字是不是音就直接写十乘上乘上哎就好不用连接字不用连接字哎然后是不是要转换一下哎图死俊啊那个死俊转呃男宝就是数值类型转 成自服串类型用到一个什么东西 qs 郡对不对要不然引路捡啊英科路的啊 qs 郡啊又要用到之前的一个老的知识了对吧。对 好了那么这个就是一个 q 四郡就感觉会会个图片有点很麻烦。麻烦吗麻烦只要熟悉其实就不麻烦啊思路你的把你的思维建立以后就不会麻烦了现在你肯定第一次的时候会感觉麻烦而且你要注意 在这个地方你要绘制的时候后面还得要有一个圆点的设置基础点吗相当于这样的话你后面就可以通用。为什么这样来我们来看一下啊 这里在转换个的过程当中可能有点问题啊啊转成了什么 x y 什么了 qq 思俊默认 情况下他是转向 s 的吗对吧我们要冒冒号男宝是不是这样把。相当于把数值转成 转成对了转成自我唱了啊啊有点有点太密集了啊太密集了是不是啊哎太密集了啊。我们空格可以换大一点或者怎么样啊或者我们让他跳一格显示一个如何跳一个显示一格 跳一格。先是一个跳一格先是一个乘一个 i 加一吗啊 i 加一比如说你你想想看是不是跳啊如果是乘一个 i 加一那么相当于是第一次的时, 我乘的是十乘三,三是三十这个点,对不对?下一次的时候就变成了三,呃。四十这个点吗? 哎,不对,还那骄傲还是没跳。那么我们其实加一个判断不就行了吗?对不对了?加个判断然后再给他 ok 了应付一下不就好了 啊,对吧岳父。呃,相当于是每隔一个点了,偶数点了,哎,这又就是一个小小的算法对不对? 哎。而而什么呢?取于取于用百分号取于磨二的时候,我们比如说让他等于零的时候也相当于偶数个,这是偶数吗?偶数的 时候,哎,让他让他画出来一个点,对不对? 偶数偶数点的时候我们让他画出一个点,那么我们这个时候呢就隔一个点了,对吧?你看这就隔一个点了啊,后面有点大啊,是不是又有点大了?难道这个这个这个倒是啊,我们, 呃,不是这个问题,我们到后面你可以自己来解决啊,自己来解决,比如说让这个地方后面显示的更加稀薄一点,或者让这个数字往下一点, 对吧?哎往往下一点可能没那么好看啊可能就没那么好看,那这个地方,哎只能是让你显示的数少一点,那么在显示的数少一点怎么办?每四个点 可不可以,对吧?鱼刺不就好了。每四个点一个现在是不是稀了?现在好看了啊,那就 ok 了吗?啊 那么这个地方也是同样的道理啊也是同样道理啊,那么我们再把下一个也是不是复制一下 来再来考虑一遍啊。这个地方这是训练思维啊,有点啊,思维上的训练,那么那个那个位置 x 走位置位置还是。哎? x 走,我们现在的话呢?就是要变化还是不变啊?变成 xoxo。 我们比如说让他从左左边可能会看不见,因为比较比较小,我们放到 右边好了啊,放到右边,放到右边,我们就让他等于是十五而歪走,我们此时是不是要变化? 是不是要变化?十乘上一个,十乘上一个,哎,对不对? 就相当于歪着高嘟嘟嘟嘟就每隔十,每隔十一个吧,每隔十一个,但是他那个一个是从下从低到高啊,然后这个,那这个就是倒着二百, 哎,那我们先来看一下效果啊先来看一下效果,应该是要让他从数字的话,下面应该是小的,上面应该是大大的,对吧?但是这个就反了,怎么办?好像有一个取反值的,哎,反向对 怎么办?那,那就是把那个上面的那个货循环可以改掉,哎,要么就是改货循环,其实在这个位置改也就可以了。 怎么改?我们才怎么样知道第一个数字?求最后一个数字啊?总数我们是知道的啊。差吗?做差不就好了吗?做差做差。最后一个最大的这个是多少啊?二十十九还是二十十九?十九减去 挨数就好了,也就是当我挨为二的时候,当挨等于二的时候,我们取最后一个点,是这样吗?是十九吗?最后一个点。我们想想看应该是什么?最后一个点,此时我们应该是十 等于二的时候,十七吧,是十七, 对吧?第一个点应该是属于,呃,第一个点应该是 id 一的时候是十九对,十六,也是,就是 想一下啊,第一个点,第一个点的时候呢,我们其实在这里面的话呢,当矮等于一的时候,我们怎么样?相当于是就就就这个意思吗?当矮等于一的时候,我怎么样?让他输出十, 应该让他输出十九吧,让他输出最后一个吗?然后当 a 等于二的时候,让他 输出最后第二,倒数第二个,是这样吗?对不对?那么我们这样减的话呢?你想想看,大概等于二的话就变成等于十七了,那应该是用什么来减?就用二十来减了, 这样是不是就点出来就对了?倒数第二个是吧?对不对?哎,那就反正就是用最大的这个值来去剪一下,剪一下你发,发现一下他到底是不是哎?到到底是不是属于 倒数的,对吧?啊?那你相比一下就 ok 了啊,相比下就 ok 了,那么这个地方是一百六,这是一百六啊,一百六,然后一百八,这我们现在隔多少个?隔四个是吧?一百六,这里是一百七,一百七,一百八, 一百九吗?是一百九吗?一共那就对的了,对吧?啊,那就对了。好了,那么我们比如说现在我们怎么样绘制中间的这个轴线, 那我绘制折线的时候我肯定要知道,既要知道知道 x 轴的这个点,又要知道我爱轴的,就相当于知道一个点吗?一个点,一个点,他代表 x 轴,对不对?那又代表我爱轴,是不是这样? 及时点终点,及时点终点,第一次的这一个点,第一次我画线的时候,他的这个点就是一个点,我们要画一条线的话呢,肯定要知道的是他的起始点和终点,对不对?那么第二次在绘画的时候就是 第一条线,我们画的时候,比如说我们从这个位置到这里,我们应该知道是第一个点,第二个点对不对?哎,对,非常好,我要我要表达的就是这一点啊,第二条线在绘制的时候,其实就是第一个条线的中点,就是第二条 现的起点,对吧?哎,这个很关键啊,很关键。那么我们在这里面,比如说自己来制造一些点啊, 那么制造的这些点,我们假设,我们现在假设制造的这个点,我们我们之前是不是学过随机数,是不是可以了?我们随机制造一批点,对不对?那么随机来使用随机数,回顾一下使用随机数 啊,生成随激素,生成随激素,使用 q 软的是这个啊? q 软的,那么 q 软的我们默认情况下让他是从几开始的 啊?那个是这个,一到最后是不是这样? 是不是啊?一到三二七六七,对不对?哎,那么如果说 qs 软的设置的话,就相当于是他的一个起随机数的一个起始,对吧?那么我们在这个地方,我们这样是不是 q 软的直接可以使用了, 对不对?那么我们现在让他取值范围,取到多少取值范围?我们这里面水平轴是多少? 水平轴是每隔十一个点吗?一共是三百,对不对?水平轴我们刚刚是不是一共是三百?我们来看一下就行了, 分者是三百,三百吧,对吧?十一个点一共三百,那么我们此时的话呢?三百,假设我们就一到三百之间吧,好吧。哎, 随激素这个地方还不能是你想要我们从左到右绘制的话,这个随激素这个点啊,水平走必须要是一次递增的垂直走,我们是可以 垂直的,这个点我们是可以让他是是有波动的,对吧?是不是这样? x 走我们应该是逐渐递增的, y 走,我们是有波动的啊,所以我们生成这个数,我们直接让他表示 y 走,这个 y 走表示我们现在 是不是变成创造城市网站的点击量,那么我们现在比如说第一天点击量,第二天点击量,第三点击量,我们让他这个点击量,我们假设一天点击量我们在有个波值,我们这个是一百九,对不对?一百九作为一个峰值,那么我们就让他成为一到一百九之间的数字,一到一百九之间的数字零到一百九吧,应该 啊一总会有的吗?啊哈哈哈哈哈哈哈,这比如说我们鱼上多少就可以了,一百一百 九十,想一下鱼鱼食,那么它产生的这个随机数的范围就是在哪里?零一二三四五六七八九, 对不对啊?那我就当假设九零也又好了,好吧,那么我们想要到一百九之间的话呢,就余上一百九十一, 是不是这样余上一百九十一就可以了,是这个意思吗?能理解吗?我们之前是不是有节课专门讲过随机数啊?啊?如果忘记了到前面的这个随机数,再去看一看啊,那么我们来看一下现在的话,我产生 产生相当于是零到一百九啊之间的随机 整数,对吧?这个之间的一个随机整数,那么我们假设这个随机整数,让他放到一个,呃啊? n d 吧,假设这个就按 n d 吧,那么我们这个数 我们现在是作为我们的点击量的,对吧?假设这个叫做点击量,我们让他要产生多少次呢?假设让他产生十个吧假设让他产生十个吧。啊?就十个循环对吧?十个循环,好,那我们来看一下写个循环 樱桃 i 等于零,这个会不?这个货型我们好像之前没有讲过。没有啊,那这一次就一起讲了啊,这跟 vb 里面差不多的,但是他的格式有点不一样, 但是他的这个格式是跟 gs 当中是一样的,对吧?只不过有一点不同, gs 当中没有数据类型用,都是用 led 或者 vir 来表示的,而在我们的 c 家家园 元当中 c 元当中我们使用的是有数据类型的,我们这里面是让他产生整数,对吧?就用应特来表示整数啊。 id 零 i 小于, 比如说让他十个对吧?十个, ok, 那么哎,娇娇回车啊回车 好了,这个就是我们的一个随机数就有了,那么点击量就已经有了吗?对吧?这里就表示点击量啊, 点击量有点低啊,一到一百九啊,以后要争取要搞到个一万日活一万,哈哈哈哈哈哈。一万就就笑成这样子了,人家日活几几百万几千万几亿的都没得笑,哈哈哈,就我就已经笑成这个样子了哈哈哈。啊我们来看一下啊啊 我们来看一下,那么这个是属于我们的点击量,相当于是属于歪走,对吧?歪走,那么歪歪走哎。呃我们我们先先来听我们这里,好吧, 这个是 y 轴, y 轴的数据,那么 x 轴的话呢?我们就根据这个点来进行,相当于是来变化好了,我们上面 x 轴是到哪个点啊?是不是到这里啊?其实啊,要到三十一了,之前之前是不是要到三十一了?从二开始到三十一了 啊,那么我们在这里面其实也是可以让他从二开始到三十一的话,就相当于写满了,对吧?我们就让他写个一点点好了啊,假设我们就是这样的话,就相当于是前面的几个点,对吧?没有写满,只是写到前十,前十个, 是吧?啊?那么我们现在来开始啊,开始其实是不是就复制一下就行了?绘制是不是就复制一下就行了?水平走啊,这个是绘制水平走的,对吧?现在无非就是 x 走和 y 走是不是同时进行啊?好,绘制线, 绘制线主要来,哎,先绘制线,再绘制点啊,线有了我们点的话就点一下就行, 对吧?那么我们在这个地方我们来看看问题现在在哪里? x 轴现在是不是不断变化,而 往外走我们是不是也是要不断变化?哎,这个是就是 x 轴的话就是从十这个点开始,对对对,零十层,呃,就反正第一个点是零这个点吗?对不对?从零这个 点开始,往往外往外走啊,往外走,然后就相当于是歪这个点是这样子了啊,那么我们来看一下,呃,歪走就是什么?是不是这个啊?安迪啊, 是这样吗?对吧?对吗?对啊,容易吗? 啊?不对不对,有问题,当然是有问题的了啊,从癌的那个开始,那个不是地震,注意啊, x 走这个是 子会线的时候,我们这个叫代表第一个点,这个代表第二个点,看明白了吧?如果这样写的话,第一个点跟第二个点的高度不是第二个点,我,我应该是要下一个点了吧?那第一个点跟第二个点的 x 岂不是一样了?所以我这个应该改成什么?哎?下一个, 这是 xo 的下一个点,对不对? xo 的下一个点啊,然后呢?高度呢?高度跟第一个点一样吗? 那他应该要随机的,对不对?那么让他再产生一次是不是就可以了?这个表示第一次的这个随机数这个点啊?然后再表示一个第二个随机数这个点高度是不是? 第一次的这个点跟第二个这个点不一定一样的?那我就让他产生两个损技术,这是表示第一个点,这是表示第二个点,是这样吗?然后下一次的时候,关键下一次是什么?下一次的时候有没有问题? 下一次的时候我应该下一轮循环的时候,我应该要把第一个点,我是不是就相当于上一次这个点?我应该要保存起来,作为这一次的这个点,对吧?那么我现在这里表示有问题吗?又变成随机了, 那这样的话这个折线图会不会连上?对啊,就没连上了,我们来看看没没连上的这个情况是怎么样的?跳跃,跳跃,这里会一点,那里会一点。看一下啊,那就绘制成这样了, 会成这样了,对吧?这就是我们第一次这个点跟第二次这个点没有给他连上,对吧?没有给他连上啊,那么我们接下去呢?要给他连上,怎么样?连上?想一想, 下一个其实点跟上一个结束,这个是叫做其实点,这个叫做结束点,那么我们每一次应该要保存一个点 不就好了,是不是这样?那我保存一个点的话,我是不是搞个变量就好了?哎,那我在外面搞个变量是不是这样?在里面的话,在,那你在里面的话,我肯定是要被覆盖掉的吗? 对吧?那我在外面了声明一个变量,那么这个变量,比如说是欧的 x o 的 y 好了,那我就可以进行复制了,欧的 x 应该是指下一个点,或者我们就是上一个点的结束,呃, x 一 x 和 y 吧, 欧的欧的,不要欧的 x y, 那么或者是 x 一 y 一也可以啊,也一样的,是吧?那我们就 x 就是下一个点,是不是这个要给他复制一下, 这个是不是下一个点啊?啊?那么这里面我们知道了,就是我们如果说把它表示成 x 啊,那么在下就下一个点的,这个是指下一个点的 y, 对不对? 这是下一个点的歪,好了,那么这是下一个点的歪,哎,那这样就对吗?那这是对啊,那你要保持歧视点 啊,想一想,要思考起来啊, 那么我们在这里面的话呢,其实我们肯定是要保存点,这个思路应该已经有了,然后我们干脆声明一下吗?第一个点,第二个点,我们都搞个边量,都给他存起来,后面再来变化啊,我们可以这样子的思路,对吧?比如说我们有个 x e y e 啊, x ex x 一 x 二啊, y 一 y 二,这种是可以的吗?对吧?那么这,呃,我们写写在一起好了啊, x s 二 y 一 y 二 啊,那么这个叫,这个叫,比如说是第二个点,这是如果说这个地方是第一个点, 那第一个点是什么? x e 应该是等于十十乘上 i y, 我们先先恢复原样啊,让他表示一下, y 一就是 rend 一, 是这样吗?啊?这个我们现在再来看一下啊, x 一这样有没有用? 你这样当然,那就相当于换了个变量而已嘛,对吧?那么我们现在的关键就是我们现在已经保存起来了,那么现在的优势就是属于优势就是属于什么? 我们已经保留了这个点,我们现在无非就是怎么样让这个点变成我们想象的这个样子,下一个点应该是属于上一个点的中点, 对吧?我们这里面肯定要进行一个什么呀?负值的一个关系, x 和王海之间的有个负值关系,是不是这样的?也就是说这个点 x 走,注意啊,要点来了,这个点 x 走, 这是属于第一个点,对不对?这是属于下一个点, 好,第一个点,下一个点,好,我们先来,先来讲第二次循环,第二次循环的时候应该是什么? x 一和 y 一,我应该是属于, 哎, x 一和 y 应该是属于 x y x 二 y 二啊,所以我们一也也就说我们既然绘制好了第一个点,我们是不是要把这个第二个点要给他给过去, 哎,所以我们应该是要想一下, x 一应该要让他等于什么呢? x 二是这个意思吗?啊,好了,那么与此同时, y 一应该等于什么? y 二,好来, y 一等于 y 二,那么这里面还要不要产生啊?下一次的时候我岂不是又产生了,又没了, 对吧?也就是这个地方我不能这么写,是不是不能写到这里啊?或者说我这个地方我写的时候要加个变量,第一次的时候我进去,第二次我不进去, 对吧?或者我直接写到外面是不是就可以了?其实点我归结到,归结到外面不不就行了?写到变量外面,哎,你直接第一个点你是知道的, 第一个点我们这里,哎,等于零了, s 一就是零了,对吧?这个是不是个随机数啊?乱的一啊,哎,随机数产生一个不就好了,是这意思吗? 是这意思吗?啊?我们再来走一遍这个思路啊,首先我们第一个点是一个随机数,有的,对吧?好,我们接下九倍就是第二个点了,我们来看看第二个点走的对不对啊? 第二个点,是啊,这个这个乱的啊,其实不需要了,我们直接这样子好了,少写一条代码,因为没有必要的,对吧? 是这样吗?我们来看一下第二个点,我们是随机产生的,对不对?随机产生的,怎么随机产生的呢?这就是在这里面来加一, 是还加一吧,或者是我随机产生的话,其实这里用个一表示也是一样的,对吧?我不加一好了, 直接让他产生好,因为我们上面第一个点已经有了,是这样子吧,那么我们在这里面的话呢,就直接写一个,哎,大家想一下,第二个点我现在就是相当于是我产生了 第二个产生到了第二个点的位置,然后呢第二个点的高度已经有了,好,我现在画出来从第一个点到第二个点,这第一次绘制是没有问题,对吧?接下去就是相当于是把第二个点我放到了第一个点里面去, 是吧?那我下一次在绘制的时候 x 一五二一是不是第二个?第二个点作为一个第一个上一个点的起点啊,对不对?第二个点我又是新的,然后又放到了这里, 然后第二个点呢,又放到第一个点的位置,是这样吗?感觉好像对了吧,哎,我们来看一下, 看看啊,有没有问题啊,想想现在思路好像想通了,也就说这个地方思路想通是非常重要的。哎,只不过绘制的时候呢,我们从这里开始绘制了啊,就有点问题了啊,不能从零开始,要从十开始对吧?从十 开始十应该是什么?哎,至少要等于十,然后这里要等于 啊,是这样吗?嗯,哎再来看一下,这是我们随机产生的一条随机数啊,心电图一样的啊,对吧?再让他再多一点啊,三十改成三十吧, 多产生几个点啊,那么这样的话呢,就那么有时候我们如果说有时候一些呃做一些东西的话呢,我们规定要显示多少个点啊什么的,对吧?这就很心电图一样的 是吧?哎心电图样的啊,那么我们接下去的话呢,关键有一些这个像这种地方我们要点出来,是不是要点出来,所以我们此时的话应该要画点,对不对? 对,要画点,我们信仰已经画完了,接下去就是画关键节点就可以了啊。画点画点, 怎么画点?喷头点九二点 a w pent 是不是碰一下?每一次是只画了一个点? 对啊,破循环的呀。啊好了,那么我们每次画一个点,那么第一次的话呢,我们这个点要不要画就是要,要不要画随便你写到外面就可以了,对吧?那么后面的话每一个点我们至少也可以画出来,这个点分别是什么呢? xy 是二歪啊,是这样吗?那个是二歪,二好画就好了吗? 哎,点的大小当然后面也可以去调了啊,那么我们现在默认默认大小好了,哎,有点吗?没什么点吗?看起来啊, 再看一下有没有能不能调的下他的大小逗号,看一下两个参数没有没有。我们来看一下 q poplunt 能不能设置 q 啊,实力化一下,看一下这 xoy 走。好像没看出来啊,那同样的还是一样,呃, x 二 y 二应该来说是 可以设置大小的啊,这个好像也看不太清楚啊,哎,这个地方是不是可以平滑过度啊?嗯,可以设置设置那种平滑过度, 那么,呃,这里面的话呢,我们这个点好像没有感觉出来,哦, 是吧?没有感觉出来,嗯,但是画点应该是没有问题了,在这个地方应该是画出来了,是吧,按照代码的话应该是给他画出来,我们可以看一看他这个地方有没有能够改变他点的大小。哎。 第二次这个这个是什么呢?感觉这个参数有点像改变他的那个啊。点的吗?你看 还有 pos ss 啊,还有 pos ss 啊,就是点的大小的,这是一个, 这是一个九儿胖,哎,他这个地方你看到九儿胖,他调用的其实就是什么九儿胖一次对不对?而九儿胖一次的话呢?啊,因为默认 个数个数,他是默认的,哎,默认,哎,这个是默认,是换的,就是一个,那应该是一个个数 放一次,就是这里面格有点有多少个,对吧?点有多少个,那么我们在这里面的话呢,就用放循环,应该是就可以了,这个点的话应该是直接画出来了,我们也可以调节这个点的大小。呃,其实我我们可以设置一下啊,看一下, 在画这个点之前我们来设置一下,叫做喷车方特点设置 设置,比如说设置什么,有没有跟大小有关系的啊?画笔大小有可能四件套什么啊,看一下, 哎,画笔对吧,这个有点像是画笔啊,或者是 blus, 对吧?哎,我们比如说塞得片来看一下,塞得片的话呢,我们这里面又可以设置他的颜色啊啊,样式啊等等,对吧?啊?我们比如说改个颜色看一下啊, 改个彩彩色看一下啊。 q 卡喽,这是画笔的颜色,这个画笔的颜色为红色吧, 红绿蓝二五零零。那这个设置完成之后,后面的线估计也是红色,这后面的线还得给他设置成黑色才行。得设置回来,对吧?设置是成功了啊,那我们 还得给他设置回来,鼠标不见,那么我们在画这个的时候给他设置回来,这里设置回来是不是就行了?这是黑色,红绿蓝 看不太清楚啊,我们看看能不能设置大小啊。笔刷我们来看一下。 点四 s, 哎,放一放一条是字体,字体啊,可以设置字体,什么字体的大小啊什么的,字体的样式啊什么的,笔刷我们来看一下啊。 好,我们来 q ready, 对吧? 也是 plus map 倒是可以设置 啊,这个这个点一下子好像也没法,我们来看一下他的那个,主要胖一点,他里面有没有案例啊?有没有 他的案例当中有设置那个点的,你们可以查询一下,这是主要判 抓胖,我们来看看后面有没有他的那个有那种点的那种啊。哎,好像他也只是画一些线啊,这个也是画一些弧线, 有没有画点的呢?来看一下画点的时候他有没有呢?呃。这什么设置图片的? 这是那个样式的对吧? 来查找一波查找一波。那么我们来看看设置了放他的大小之后他会不会变啊? 放一个塞子看看有没有 现在在那个放着。我们来看一下 q 放置 fong 啊。 q 放着放着的话呢往后我们来 看一下啊。这里其实有点的大小的啊。宽的 ss 对吧?负一负一就是默认的。他是默认大小吗?哎不是不是没有,他是表示默认大小,默认大小有个大小的。嗯嗯, 那么我们在这里面的话呢,我们比如说这个地方就是字体,我们比这个假设给他改成隶书好了,字体也变一下啊啊我们来看一下。呃接下去这个大小大小我们让他设置成 三十,看字的话设置好了就不会变大哎。哎没什么效果没,真没有哎。 有有点的应该是有点的,但是没有效果但是没有效果。在这里面好像没有没有看出来他的那个点的效果啊没有看出来点的效果,但是点应该是有的。我们来看一下他的那些点啊,把这个给他 画的那根线给他去掉,这样线就去掉了对吧?线去掉了,我们看看上面有没有点啊,仔细观察一下哈哈哈。但是点的大小应该是没。你看点是有的对不对?只不过我们没有设置好他的大小啊,待会我们要回头要去看一下点 点的大小该怎么去设置,点是有的,对吧?点是有的,只不过这个点太小了,然后呢?看不太清楚, 那这个后画的肯定是在前面,肯定是肯定是在最上面。对啊,那么 啊,我们在这个画点的大小,那么回头这个就我就我这里面我就不写了,我可能还要查询一下,对吧?那大家呢?回头就把给大家布置的这个作业当中,大家把这个点的大小去查询一下啊,无论 是去搜索还是怎么样都能够查的到,对吧?啊,反正思路的话呢,大体思路都已经没有问题了。啊啊,那么这个折线图就是我们这一次的这个作业啊,作业好,那么我们接下去就下课。

喷笋技巧之 py ex 绘图首先我们要从 py ex 包中导入绘制丙图的功能,接下来我们要为其创建一组衬衫、羊毛衫、裤子、高跟鞋、袜子的数据集,并为其填补相应的数据。 然后我们将丙图的名称设置为丙图实力,并且设置其宽度为五百,高度为三百。 然后我们将创建好的数据集添加到我们刚才设置的丙图中,并且使用以类包售这个参数去将他的图例显示出来, 然后输出丙图,发现有一个中文的逗号是错误的,将其更正之后就可以显示出正确的丙图啦。

好,同学们,那么今天的话呢,我们用,我们用这个 q t 啊来,在昨天的昨天就学了一个数据库 sockey, 对不对?今天我们就来在此基础上来实现 界面上的一个软件啊,来结合数据库实现真山改查啊,真山改查,那么我们今天来先新建一个这个,今天的啊,今天的文件夹,我们每天有一个,对吧?啊?我们今天的话呢,就会把这个所有的哎 点的太多了吗?啊啊,都会放在这里啊,那么没事,那么我们接下去的话还是一样打开它,那么同样的用一条语句来创建我们的数据库,或者说已经创建好了 啊,那么我们创建的这个数据库的话呢,实际上应该是就是说我们如果说是做嵌入式开发, 到时候呢你要是把除了你做的这个软件要考到你的这个,呃,就比如说一个平板上面,对不对?把它考进去之外呢,与此同时还要把你的数据库考进去, 要不然的话也就没也会没有用的啊,当然你如果说写在这个软件里面的话,他会自动创建,对不对?那也是一样的,也可以用的,那就是有两种方法,要么考进去,要么就是写在软件里面啊, 那么我们现在的话呢,还是一样先新建一下这个工程,今天我们来看看这样的一个项目该如何来实现啊?零八零五哎, 呃,零 test 零一吧啊,加个一吧,我们来给它创建一下,创建到这里 啊,作为我们的呀一个主界面,那么今天的话呢,我们要学习新的空间啊,新的空间, 新的空间,那之前的话基本上已经给大家用了一些哪一些的,就是一个是文本框对吧?一个是呃除了文本框之外的话呢?还有就是什么呃 label, 还有是按钮 button 对不对?那么这几个基本的 记法大家都要会记啊,记,哎,怎么记呢?哎,我们要记的是我们一般来说都是有个 q 的对不对?但是我们搜索的时候都是有个 q label 啊, q label 这个是我们简记回顾一下啊,还有是一个 q button 啊,那么还有就是呃 q line editor 对不对啊?是大概是这一些啊,大概这 那么我们基本上学会这些的话呢,我们可以实现很多很多的功能了,已经仅仅仅仅一个这个 level 就可以,是不是实现除了图片文字还有视频这些东西都可以实现啊啊,所以就功能其实就非常强大了啊,除了这些之外我们其他都还没用到了啊。 今天的话呢,我们来学习新的东西啊,叫做啊,叫做一个表啊,表格网格啊网格空间, 那么表格的网格控件的话,我们啊今天用到的叫做 table view 啊 table view, 那么除了这之外的话以后我们也会用到一些列表啊,列表空间,列表空间,我们觉得 list will you, 对吧?那么其实呢用法都是类似的,那么我呃让同学们在学习的过程当中啊,希望同学们能够看 到我的这些用法之后啊,你要能够学会举一反三啊,嗯,比如说我学会了这个 table view 对不对?那么 list of view 的用法其实都是类似的啊,你要能够知道我这个思路是怎么走下去的,对吧?你思路会走下去了,那才能够就是 自己能够拥有写程序的这个能力,对吧?而且就是关键是啊学习的这个能力啊,就是说你通过一个程序能够举一反三出来其他的一些能力。那么我们首先来啊实现一个叫做,呃,我们把这个东西啊来 名称命名一下啊,名称命名一下。 q 名称的改变,我们默认情况下是改在哪里哪里改的,大家看过吗?这个属性当中,我们比如说先把他这个项目编一启动一下,默认情况下的话,他是跟我们的这个呃创建的这个 项目的类名是一样的,对吧?那么改这个是从哪个地方改的呢?大家看过吗?属性里面有没有改过?属性里面有没有改过?刚刚的那个名字 要跟上,对吧?这个地方叫做什么呢? window title, 对吧?通过这个属性来修改啊,这个叫做,比如说我们把它改成,呃 呃,这个叫做什么呢?用户管理,软用户信息管理, 对吧?用户信息管理,比如说是,然后再加上你的作者啊,鎏金编程。好,假设是这样的,那么我们通过这个属性我们应该要知道,嗯,但答不出来的,这个时候你就要把它记下来啊。 window title 对不对?有两种方法,一种方法就是从这个属性上面可以去改,另外一种 就是通过什么代码,代码可以去讲修改,对吧?那么修改窗体呢?但没答出来,我们给他记一下啊,修改窗体的标题啊的属性是什么呢? window title, t l e 啊, window title 啊,这个属性窗体的属性 window title。 好,接下去我们来呃制作一下这个界面啊。首先我们来做一个叫做,呃, la label label label 里面我们要拖一个用户名密码,对吧?我们来做一个注册和管理啊, 先做一个注册,注册的话呢,我们注册到数据库里面去,注册到数据库里面去之后呢,我们要从数据库里面的这一条信息,然后能够学会修改啊,同样的也要能够学会删除,对吧?那么这就是 同样还要能够把它展示出来,对吧?那么这就是一个最为基本的真商改查的一个结合数据库的一个简单的用户信息管理,那么如果说你学会了这个用户信息管理之后,结果会怎么样? 下次我比如说让你管图书,图书信息管理会不会啊?成绩,成绩管理会不会?是不是都是类似的啊?所以就是我们要掌握一个,要学会其他的啊,你这个这个东西就是比较核心了,你就相当于是一个你的人生的一个呃,管理信息系统的一个 demo, 对吧?这是累死了啊。那么我们来看一下这个,比如说是账号啊,账号,那么接下去呢?再来一个密码啊, line edit 啊,我们这个就一行就够了,对吧?哎,那么这个跟大家顺便讲一下,刚刚这个东西是不是可以可以动的? 是不是可以动的?可以动的这个东西可以拖的在旁边可以动的,拖的这个东西叫做 dog 啊, d o c k dock 啊,这个词大家也要记住啊,比如说 sat dog, 咱们设置的是哪一个? left dog, right dog 啊? bottom dog, 对吧?哎?上左左,左边,右边,下边,对吧?中间的叫做叫做什么? center 啊?我们用到那个 window vigit 的时候,我们刚刚不是,是不是用默认的一个 video 它,呃,我们用 window vigit 的那个时候, men window, 就是那个 men window, 记得吗?用那个 men window 的话呢,我们此时就可以会看到我们刚刚我所说的这几个啊,顺便跟大家提一下啊,那么我们现在 edit 啊, line edit, 把它拖拖好,把这个界面拖拖好, 这个是你的账号,好,接下去复制,还记得吗?怎么复制?哎,哎,这个拉拉拉,对,然后 ctrl 按住鼠标一拖是不是就来了,哎,这个叫做密码 好,密码好,那么旁边的话呢?我们就给他加一个注册啊,注册我们就用按钮啊,注册 注册,哎,哈哈哈,白痴了已经哈,那么这个地方,我们就比如说加个注册,旁边我们加那个注册 注册用户,对吧?注册用户啊,那么注册用户我们要把它注册到数据库里去啊,数据库里去, ok, 那么我们,呃来 注册的过程当中,我们要同样的,待会要用两种方式注册进去之后我们要从数据库里面去看一下他是否注册成功,对吧? 哎,我们来看一下啊,首先点击 click 啊,点击 click, 好,那么我们注册的时候注册到数据库里面去的话,我们首先是不是要加载这个跟数据库有关的东西啊?对吧?那么我们,呃,还没加载之前,我们先把这个 这个上面的一些文本我们给它取取下来。用户名和密码,对吧?取,取下来是不可以啊?那我们取取下来,这是一个字符串,字符串的话,我们要用一个内裤叫做 q string, 对吧? qs, 俊,好,那么与此同时我们要用到数据库的,我们必须要做到第一步是什么?哎,工程文件引入,哎, 数据库的是有关的,大的内裤,对吧?然后呢里面的一些啊,一些类我们就可以用了,这个类就可以把它引入了,那么我们今天的话呢,要用到的是这个 q soccer 啊, database, 这个就是要创建数据库的,待会啊,啊,那么我们是不是执行语句的话,还有一个叫做什么? 完了, cue soccer query, 对不对?哎,那么这里面的话呢,大家待会要注意到啊,我们要结合数据库的话,有个模型在这里面啊,待会我们要用到, 在这个地方,我们首先要知道,如果说想要多条使用这个搜狗快手,我们是不是可以在这里面用一个指针啊?然后呢,待会再出手完,完成数据库之后,我们再把它进行扭一下就可以了,是吧? 好,首先我们来建立一个指针啊, q circle query 啊,我们比如说建立一个这个指针,对吧?指针没有关系,但是你不用指针的话,就意味着待会它其实是取不到那个连接的, 对吧?对吧?好,那么我们此时的话呢,这一个 ok 了,我们接下去要创建跟数据库有关的东西啊,数据库有关的,那么我们在这里面的话就先创建数据库 s s q q circle database, 对吧?啊,那么我们这个 d b 吧, 等于就这样好了,可不可以啊?这个就是一个局部变量,对吧? db 点点什么呢? add database, 是不是啊? add database, add the data database, 什么东西 哎? edit base 数据库的 类型,记得吗?啊?回忆一下啊, q circulate s q l i t, 对吧?这个这一条要背出来的啊,虽然背,如果说你背不出来,帮助文档里面是有的,但是你要把它背出来,对吧?那么默认使用这个 qsaclad 的时候,我们就是给他使用的是 哪个版本?三这个版本,如果说后面加个二就是二这个版本,对吧?好,那么我们接下去啊,那么我们呃 db 点 add, 呃,设置了,对吧?设置了,那么我们接下去的话就可以怎么样创建数据库了,对吧?创建数据库了 db, 点 set database name, 创建数据库文件了,数据库的驱动,我们 ok 了之后就可以创建数据库的文件了,对吧?数据库的文件,我们比如说是叫,呃,刘金玉啊,编程吧,今天就用这个啊,刘金玉编程,那么 这样子的话就已经创建完数据库了,是吧?啊?点 d b, 有或其实有或者没有都可以啊,如果说按照按照我们这数据库的一个规范的话呢,就点 d b, 对吧?那我们就加进去点 d b 好了,好吧啊,接下去我们 数据库的这个文件已经有了,那么我们是不是要使用它的话,是不是要打开链接啊? db 点啊 open 好,打开链接,这就已经打开了,那么接下去我们还要干什么呢? 想要用查询的话,就要把这个查询要怎么样? new 一下吧, new q circle 跟着啊,跟上啊, circle query ok 啦, 这样子的话我们查询语句也可以用了,对吧?那么我们在这里面的话,我们先来创建一张表格,需要啊,创建创建一张用户信息表,叫用户名和密码,跟昨天一样。好了啊,点 e x e c 吧。好,我们直接来创建一下啊。 create, 来背一下 c r e a t e create table t a b l e 什么呢? user info 对吧?哎哎,我们在这里面,哎,对, user name password 啊,用户名密码,这样是不是就可以了创建了表了?好,我们来 试一下,看看是否首先要一步一步来,不然的话错的太多了,有可能错掉的话会太多了,对吧?我们来现在来,呃,找到我们的,呃,加载的这个八零五一我们的这个工程文件,下面看看这个数据库创建是否正常啊? ctrl 加 r 运行对不对?这是个快捷键啊,要记住,我们现在来运行编译一波看一下。好,这里面界面已经有了,那我们接下去的话呢?哎,这个地方有吗? 没有的话我们要检查一下差在哪一步,对吧?照道理的话,我们,呃数据库创建完成之后,肯定是这个地方应该是有这个相应的数据库文件了啊。首先我们这个 circle database 对不对?然后呢是 add database 对不对?其实不,其实如果说你怕忘记的话,你直接这个地方帮助文档去看一遍,去核对一下好了。 q circle that base 去核对一下,他肯定有创建数据库的地方的嘛, 对吧? add that base 对吧?然后呢是 soco 快了就就直接就用了啊,就用了, 那么 circulate 用的对不对? q s q l i t e q s q l 是不是大小写错了? s q l i t 啊?大写大小写也对的,大小写也对的,对吧?大小写也对的。 创建文件,那么我们先把这两行代码给注视掉啊,就怕太多了,他说数据库没有被打开啊,在这里面也就说默认创建数据库,使用数据库创建其实是有问题的,对吧?那么我们,呃要把这个数据库首先要能够搞出来才可以啊,现在没有 还是没有?那么这个地方问题我们可能要发生的地方在哪里,对吧?我们要,我,哎, 要怎么样?我们和昨天的话,我们使用的是这个的,是使用一个指指针的,对吧?指针类型来创建的,那么我们其实应该是一样的啊,对吧?啊?但是为什么呢?我们要么先给他改成我们熟悉的一个写法,我们来试一下,可以看看 database 啊,是是这样写的吧?啊,那么 d b 点等于六 q circle 啊, database 啊,我们这里面是不是直接扭一下就好了? 这个也不需要,不需要怎么写啊?不需要怎么写? q circle database, 那么接下去的话呢?就好了,对吧?这个地方,呃,全部要改掉了, 这里就全部要改掉了啊,我们再来看一下,重新运行一下看看, 哎,这个会有区别吗?到底啊,这也是要尝试一下,对吧?尝试一下, 其实是其实是不是一样的啊?我们来看看,再核对一下。这个其实是比较关键的部分啊,但是到底是错在哪里呢?跟昨天是差在哪里呢? 我们可以把这一条复制一下啊。呃, so call the base, 我们其实从这里去参考一下它的东西就可以了,对吧?它里面是怎么去写的?比如说 啊,比如说这个他用了一个什么静态静态的写法, 是不是他是在他的静态的这个里面的这个东西啊,那么我们也还是一样采用这个啊,采用这个静态的静态返回的这种形式啊,对吧?我们昨天是不是采用静态返回的形式来写的? 哎,所以我们今天还是要一样,我们如果说发现问题的时候啊那么我们就要通过这种形式来帮助文档去看,那当然大家要熟练对不对? 你如果说想要呃做的非常专业的话,那你就要非常的熟练,比如说你以后在练习要去比赛或怎么样,那就要非常的熟练,每天都要去练啊, soco database 对吧?哎好, add database 啊,好,我们再把它粘贴进来, 我们再来看一下啊,他这个这个现在是静态返回的形式了对吧?哎为什么会报错?因为他返回的是一个什么类型你要知道啊返回的是一个什么 soco database 的一个类型, 对啊,那么这个地方就啊我看一下对吧对吧?啊那他因为返回的这个 类型就根本不是一个指针的类型,对吧?哎好,我们再来看一下啊,再来重新来测试一下看看。 所以说我们有一些东西啊,我们在第二次在写的时候我们会发现有一些细节上面你是平时没有注意到,对吧?下次再写的时候你可能就不知道现在是不是就有了, 对不对?所以呢我们这个地方虽然我们上次记了这个方法啊,但是你要非常的清楚的记住这个地方是你刚刚看了半天是不是没看出来,我们只有看了帮助文档之后才知道了啊,当然我们呃首先这里要记一下啊,如果 实在哎写的时候找不到问题啊,找不到问题啊啊要学会使用帮助文档啊,文档参考对吧?这个帮助文档它里面非常的 ok 的啊,那么这里面的话呢?哎撤销,那么在这里面的话呢,我们就是如果要实现实现数据库啊,数据库的初始,数据库对向的初始化, 说实话啊,要使用静态方法啊,静态方法啊返回要使用这个的这个内裤的一个静态方法来返回啊,这个要注意。 好的,那么这样的话呢,我们数据库已经创建成功了,接下去就是一样啊,接下去就是来执行了,对吧?来执行了创建表啊创建表,我们来看一下, ctrl 加 r 来看一下,这样的话呢,应该是表也已经创建好了,创建完成之后我们是不是要通过这个语句来进行检查了,这表是否存在啊?好,那么我们要到达这一个目标, 这个目标是在这个位置是吧?把它路径复制一下,找到我们的 circulate 的一个安装位置啊,安装位置 再吸一盘,如果说你怕麻烦的话怎么办?哎,把,那当然也可以啊,把它加到环境变量,马上就可以去使用它了,对吧?哎,好, 那么我们现在的话呢,来检查一下啊, circle it 啊, circle it 三哦,到达这个路径我们是 l j y 编程点 d b 对吧?啊?回车 点 table 是吧?看里面的是不是有 user infor, 好,那么我们有没有数据呢?肯定是没有的,对吧?好,小黑板啊,这里面我们要注意啊,接下去我们我要体会到一个问题,就是这个地方 我们如果说第二次在运行的时候,第二次在运行这条创建语句的时候,他会不会把之前的内容给覆盖掉, 哎,嗯,这个不会不会啊,哎,不会不会哎,所以你要马上回答的应该就是如果他原来的表或者数据库文件存在的情况下,他是采用打开的形式,对不对?对,哎,如果说不存在的情况下采用创建的形式, 好,那么接下去我们数据库已经有了,表也已经有了,是不是可以把我们的注册的东西,哎, ins 的进去了啊,那么我们接下去来,呃,写一下 q string q string 啊,那么这个 q string 我们首先是一个 username, 对不对? username 啊, username 是页面界面上面的啊,点点什么? line editor, 第一个对吧?点 text okay, 这是用户名,然后呢就是 q q string, 然后是 password 啊,等于 u i 点 line edit 下滑线二点 test 啊,当然你可以待会你说直接用也可以,对吧?嗯,最最好呢,你要把它取下来,这里插在哪里啊? 指针类型对吧?啊,接下去我们要写一条 soccer 语句吧啊,那么写一个 q, 呃, qs 俊, soccer 变量好了,好吧,哎, soccer 变量,我们来把这个语句写好, insert 吧, insert into a user info okay user name n a m e password 好,那么 values 啊, value 什么呢?第一个, 我们这两个都用给他字符串好了啊。字符串,第一个字符串 user name 对不对?字符串第一个字符串是不是已经写好了?写好了,我们现在是怎么样给他拼接哎?加双引号 对不对?然后呢,加加是不是这样哎,把一一个字符串整个给它拼接起来啊? use the name。 好,接下去来再拼接第二个, 第二个先是里面是有单引号的对不对?对哎,然后呢,再用双引号把字符串给他拼接出来 是吧?嗯,哎,那么我们 ok password p a s s w r d 好了吧,那这里面极为容易错啊,那么大家要看到我写的顺序是什么?先写单引号,再写双引号,再写佳佳,是吧?这个写的顺序是非常重要的,要不然的话你非常容易错,那么好了之后我们是不是把这条搜口去执行一下就可以了?怎么执行啊? kiri 之前有的这个指针,我们来 exec 搜口是不是就可以了啊?全录就可以了。好,我们来好了之后我们是不是给一个提示啊?注册成功了吗?啊啊,注册成功提示,现在后面的东西就越来越综合性了,对吧? 都都用到了,发现前面我们学过的知识点都用到了啊。 q message box, ok, 那么用一下静态的东西啊, q message box, 也就是说后面前面的东西没有学好,我们后面的这个作业会越来越难,东西会越来越多,对吧?都会逐渐都要用到,所以你每一期啊都要能够给他掌握牢了,掌握住了自己要能够学会写啊。 a about 好不好,我们来看一下,首先是不是这个对话框是在这里啊?哎,那么当前这个窗体啊,然后呢?我们要写的是,比如说是消息, ok, 呃,这个就是这个文文本注册成功,提示一下 注册成功, ok, 我们来看一下是否可以注册成功啊,是否可以注册成, 你要听好啊,听着听着,如果说你感觉现在听不太懂啊,听着听着其实就会懂,每次都是这样的设置密码,待会怎么设置? 有一个关键词,这只密码把它改成密码看不见了,哎,是吧?一啊, ecso mod 对吧?啊,那么我们这里面就把它给他看得见,好吧,我们因为要注册啊,注册一下,注册成功,我们来用数据库,是不是来查看一下, 哎,谁来个成英否?哎,是不是有了一个啊?我们再来看第二个好了啊?第二个,比如说 bbb 啊,二三四再注册一个,我们再来看一下 是不是有啦? b b b, ok, 那么我们接下去的话呢,要把这一个数据库里面的内容给它显示出来,通过什么显示?通过 q table view 来显示啊?啊? q table view 空间显示数据库中的内容为为表格,表格行啊,为表格行, q table view 啊, q table view。 那么我们要使用这个空间的话,首先我们是不是要把它拖到指定的位置啊?就像我们 v b 一样,对吧?要拖出来啊,拖出来, 那么当然你也可以采用 new 的形式给它把它 q new 出来,也是一样的啊,两种形式啊,两种方法,那么这里面搜索一下 table t a b r e table, 好,然后呢把它拖过来,拖过来,那这就有有,那这这个地方就是你的这个叫做什么显示的位置,对吧?那么默认情况是怎么样的?我们拖完以后我们来看一下啊,拖完以后 我们来把它浏览一下,其实就是一个空白,他肯定是什么都没有,那么接下去我们就是要把这个东西里面的东西是不是要给他宰出来, 怎么载出来呢?他要有个媒介啊,要有个媒介,把查询到的内容呢?要把它放到这一个的某一个媒介当中,通过这个媒介,然后呢啊,他会通过这个媒介来渲染出来表格里面的内容,那么这个媒介是什么啊?我要告诉大家的是是什么呢? 是什么呢?我们这个媒介我们在开始的时候就要给他设置好啊,要设置好我们来看看他缺什么啊,我们就给他什么就可以了,对吧?那以这种方式啊,我们来看一下他可以设置什么?我们现在是不是 ui 这里面有个 table view 刚拖进来的,那么他的这个,呃,我们这个地方写在哪里?大家看到我们是不是开始的时候要把这个数据要初始化,就是要给他列出来,如果数据会 有数据的话把它列出来,那么要列出来的话,我们,呃我们首先开始的时候就要把这个媒介要通过什么媒介要列出来,对不对?那么这个媒介叫什么?叫做设置要设置他的一些数据吗?对不对?设置他的数据通过什么呢?通过这个 set model 啊, set model 这个相当于是模型,相当于数据模型嘛, 对不对? model 就是一个模型的意思啊,那么设置一个数据模型,那么它这个数据模型是什么呢?什么一个类型呢? q, abstract item model 信号,它是个指针,对吧? model 一个类型,对吧?那么是相当于是它的媒介是这样的一个东西啊,那么 是这样的一个东西,我们在数据库当中该怎么去用呢?其实啊,大家之前的时候没有很好的去,可能有的同学观察到了啊,可能没有,我们来看一下其实要 用到的是什么呢?跟数据库查询有关的,我们其实就直接有一个他的一个数据模型会自动给我们生成 啊,这个叫做什么呢? q, circle query 下面有什么 model? 这个 model 跟那个 model 是同一个老字生的啊,就拥有同一个功能哎,所以我们可以来看一下它里面继承的是什么呢?啊?他一级一级。 呃,这个直接是显示他的内裤了啊,我们在使用的时候可以看到啊啊?这个地方现在还看不到,对吧?那么他的脑子呢?就是刚刚所看到的那个啊?看刚刚所看到那个,那么我们要使用他的话呢?我们我们是我们这个地方首先要把它载进来,对吧?把它 打进来我们来看一下 q sec model, 也就是说这个 q sec model 我们在这里面要用,那么在后面我们其实比如说我们插入一行数据的时候我们还是要把它查询一下,把这个数据模型重新再添加进去,是不是还要用啊? 那么它既然在不同的函数当中都要用的话,我们要把它做成一个什么变量呢? 不同的方法当中都要用的话,我们就要把它做成一个全局变量啊,马上要反应过来在不同的方法函数方法当中去使用的话,我们就要把它做成一个全局变量,这个叫做 q u e r y 啊 model, 对吧?啊?你不要奇怪啊哈,你相信自己打出来就行了啊, 啊哈哈,好,那么我们把它做成一个指针的类型,后面的话把它 new 一下就好了,对吧? 好了还是一样在这个位置啊,在这个位置我们数据库的表也有了 q model, 我们把这个 q model 把它初始化一下,等于 new q circle。 呃? circle query model? 这比较长啊啊?比较长。 ok, 那么我们此时已经有这个 model 了吧?我们是不是可以把这个 model 就可以设置进去了?放进去了 是不是可以把它放进去了?同样是 model, 对吧?同一个老字的吗?对不对?是不是可以放进去了?哎,我们在这里面可以,他现在已经 定位到了啊,是不是?这是不是就这个 q app stricter, 它是 item model 对吧?在继承过去是不是就 item mode 啦?同一个脑子吧,是不是我们可以看到它的一个继承的过程啊?继承的过程,那么我们在这个地方已经 ok 了,那么就意味着我们把这个模型的数据模型 相当于我们是会通过这个数据模型来渲染这个表格,对不对?那么这个数据模型现在里面有东西吗? 没有,我们没有查询过,对不对?那么我们将这个数据模型设置一下查询就行了啊,点什么呢? set query 就设置查询吗?啊? set query 就是啥子设置查询吗? select 语句来了, selecting from 啊, user info。 好啦 啊,数据就来了,我们来看一下,马上数据就来了,很快的啊。 set query 就是 设置查询,对不对?这是什么查询呢?我们来看看是不是又来了 aabbb 啊,但是我们这个这个东西好像表头有点不是很喜欢,我们要给他改一改。 表头要给它改成这个用户名和密码,对不对?要给它中文改成啊,当然有两种方法,一种啊,一种方法在这个地方数据库查询的时候,你就可以把它 add 成中文。 第一种,大家咋可能我发现没有反应啊? as 什么呢? as 用户名就这样吧,用户名我们来看一下啊 啊, ok 啊,第二个字段他说的啊 as, 呃,密码啊,我们看看,不知道要加要不加,不加那个单一号我有点忘记了,不行的话就加单一, 我们来看看是否可以过来,过来了吧,用户没密码了吧,是不是?这是一种方法啊,这是一种方法啊,这是一种方法。那么 这个我们首先来这个地方来记录一下啊,通过什么来来将 table view 的数据渲染出来,对吧?我们这里面 table view 记录一下啊, q table view, q table view 空键,通过 q set q circle model, 对不对? q circle model 啊,来渲染渲染数据,渲染数据来渲染数据,那么通过什么来设置呢?就是通过通过这个 set model 的形式,形式加入什么呢? q circle model, 对讲模型 对象啊的形式就可以了,那么接下去我们只要呃呃,通过下一步。什么呢?下一步,这第一步对吧?渲染数据的第一步啊,设置要设置啊,那么我们接下去要干什么呢?要通过这个 q circle model, 通过 q circle model 来从数据库中查询 出相应相,查询出需要的数据,查询出需要的数据就可以了,那么这样子就可以直接渲染了啊。那么第三个我们如果要修改这个 什么呢?表头,表头,对吧?显示的表头表头,那么有两种方法啊,第一种表头方法啊,法一, 法一是什么呢?就是通过哎,数据库查询查询自断取别名的方式, 这个就是取别名,刚刚就是用用户名密码这个地方,我就是取了个别名 as, 对不对啊?使用 as, as 关键词,接下来啊, 关键词是用 x 关键词来去别名,那么方法方式我们就这个地方来来举举例一下啊,这个例子就是这个啊,例子就是这个啊,接下去第二种方式啊,法二, 我们不需要通过数据库,就直接通过这个什么呢? qc 和 model 的方法 啊,设置表头的方法啊,来实现。那么怎么来实现?我们来看一下啊,如果说你这里面太多了,我们可以通过单独的来实现掉,这个地方还是心好了,这个地方心的话,我们就是默认是数据库的字段名称,大家可以看到 再来看一遍啊,是不是数据库的自带名称,对吧?那么我们现在来给他通过这种呃表头的设置的形式来实现,那么如何来设置呢? q, model m, o, d, e, l 点 set 什么呢? head 设置表头, set head data 啊, set head data 表头当中的第一列啊,第一列零嘛,对吧?第一列那方向我们是横向的表头啊,我们可以设置横向,也可以设置纵向,横向啊 哈 q t 好瑞,横向我们是 h 开头啊,我这个里面是不是跟大家讲过 v b 当中给大家讲过设置横向的时候,横向的属性叫做 ho horizontal 啊, h 开头为什么记住这个 h 呢?是因为 h 的 中间有个一杠,横向的就比较好记啊,那这样的话,你就认为这个东西是个横向,当然他的英文的, 英文的意思其实就是横向的水平的,对吧?但是你有可能会容易忘记到底是横向的这个哎, horizontal 还是一个 vertical, 因为还有一个是纵向,纵向是叫做 particle, 对吧?到底是哪一个?你可能有时候会记错啊,那么就采用这种形式就可以了,接下去取别名用户名 好了。这是一个啊,我们现在取了一个,对吧?我们来看一看第一个有没有啊?第一个有的话第二个也就 ok 了嘛,对吧?啊?接下去看看渲染出来是不是用户没有了。 poss 我都没有啊,那么同样的把这个 复制一下就可以了啊,复制一下要改什么?一第二列对吧?第二列就是缩影,缩影为一啊,缩影为一,这个叫做密码, 密码啊, ctrl 加,我们再来看一下效果如何。 s 语句简单是吧,那你也可以用 f 啊,到你看看使用哪种方式, ok, 就使用这种方式啊,那么现在就有了,对吧?那么呃,这是第二种 方式,通过通过这个的这种方法,哎,第二种方法啊,第二种方法 通过设置啊,通过模型来设置表头字段啊的别名别名,那采用这种形式啊,这种形式 set a head dot set head data 啊, set head data 方法, 使用 head that set head data 方法。好,两种方式已经 ok 了,那么接下去我们是不是要将这个表格,我们要相当于我,比如说我要修改某个用户 啊?对啊,我想修改某个用户,或者我或者说我现在不是有个创建吗?我创建完,我现在看看,大家看看啊,我现在创建在 创建再注册一个,注册一个之后他会不会有呢? a a abb 有了 ccc 吧。 ccc 啊, ccc 我我啊,注册哎,没刷过来 没刷过来,为什么没刷过来哎?他因为我们没有把这个命令给他执行吗?对不对?那么我们执行一下哪一条就可以了呢? 重新再查询一次,是不是?哎,现在按钮里面这个地方,这个地方我现在不是注册吗?注册完成了对不对? 提示成功了啊,那我们注册既然执行完成了,我们就把它重新再查询一次提醒注册成功就可以了,对吧?或者是写到后面应该也是可以的啊,我们来再看一下这个时候是否能够被实时的加进去呢? dd 再来一个啊。呃呃,这里密码就随便来了啊,注册是不是就来了?马上就来了,注册成功好,那么一一也是一样的吧,我不举例了啊,不举例了,那么接下去我们关键这个之外的话呢,我们肯定还想要修改,对不对? 如何修改也是很关键的啊,如何修改也是很关键,那么我们来如何修改里面的东西呢?我们昨天呃有给大家讲到一个用从数据库的角度又用什么什么语句啊 update 的语句就可以了,是不是我们修改的话肯定是不是彻底修改也要从数据库去修改哎,因此我们就采用 update 语句结合的形式来修改,那么我们想要修改它的话,我们首先必须要,必须要怎么样呢?是不是要获 过去我要修改哪一个?那么我们要不就先这样,比如说我选中这一行,我就让这一行的数据我让他显显示到这个位置啊,假设我让他显示到这个位置好了之后呢,我就点击一下更新的话呢,就直接更新过来了, 这是是不是也很方便啊?啊,那么我们现在啊,现在我们来,比如说我们现在点中哪一行就让哪一行的数据显示到上面好不好?对应的用户名显示在账号位置啊。然后呢?呃这个地方我们也用同样的账号好了啊,同样的账号好了,这个叫做账号好了, 同一个意思,对吧?账号显示在账号的位置,密码显示在密码的位置,然后我们就可以修改好之后呢,我们点击一个更新,那么我们就相当于都更新了,对吧?那这个方式是什么呢?我们想要在这上面 修改对应的这一行,我们是不是要在这上面要,我现在在做一件什么事情啊?听到了什么声音啊?啊?点嘛?对不对?点嘛?就是这就是什么是什么东西啊?克力克什么事件啊?点击事件,点击事件,在这里面我们叫做什么 信号? qt 里面不叫,是这个,这个,这,我们叫我们叫的信号,点击的信号对不对?点击的信号是不是就可以了?好,那么我们就在这上面呢来设置一个点击的信号,是不是啊?右键啊, 右键转到槽,我们选择一下信号, click 信号,对吧?点击的信号好了,那么我们现在呢? ok, 在这里面是不就有了?我们发现这里面有一个什么东西啊?哎,他给 给了我们一个参数,这个参数是什么呢?哎,这个参数其实就是代表当前我们点选的是哪个啊?点选的是哪一行,可以说是哪一行? model index 是指这一行的数据模型 啊,这一行的数据模型,那么我们其实只需要呃获取当前这一行,然后呢?这或者然后直接从这个数据模型当中去取,是不是就可以了?哎,那么我们来看一下我们如何来取呢?首先我们是不是要给他拿到一个 usernam password 里面啊?我们还是一样,为了清晰一点啊,我们就用一个 q string user name 啊,我们让这个 user name 等于什么呢?就等于这个 index 里面,对吧?我们从哪里拿呢?就从这个地方,我们这里面发现有一个叫做什么呢?这个是不是代表一行数据啊? model 一行数据的模型,那么如果 说你想要一个一个拿过来,是不是这一行里面的哪一列,对不对?你要涉及行,涉及到这一行里面哪一列的话呢?他其实你当前点的时候肯定点了这一行吗?对吧?点了这一行,那么你就获取当前的这一行 里面的某一列就行了,那么就用这个 sigh and so sibling 啊,这个有点像,就相当于是这个里面的哪一列啊? at at 什么呢? colume 对吧?这里面的哪一列哪一列呢?比如说我们用户名在第几列? 第零列吗?是不是密码在第几列?第一列是吧?那么我们现在 列就 ok 了。那么这个的话呢?返回过来的东西啊,他还还不是我们要的一个 spa 类型,我们大家要转一下啊,转一下,转成什么呢啊?获取这个只是一个模型还是个模型?那么我们要 用 day 的方法来获取里面的数据啊,获取完数据之后呢,他还并不是一个 string 类型,我们要把它通过 two string 类型来进行转换啊,那么最终我们就可以通过这条语句就可以 获取到我们的 username 啊, username 了,那么我们可以通过简单的测试来看一下啊。简单测试来看一下我们通过什么东西啊?啊? qd bug 对吧? qd bug, 我们来要引入一下吧, include 啊, qd bug a q debug 引入一下。好,我们接下去的话呢,用 q debug 来浏览出来啊,浏览出来 use the name, 我们看看是否能够获取得到,对吧?是否能够获取得到? 好,现在浏览,我们来看一下, 接下去啊,见证一下奇迹啊,看一下现在我点这一行这一行的账号,点这一行这一行的账号 c c c 了,点这一行这一行的账号 d d d 了, 是不是啊?哎,那说明能用了,那么我们密码是不是也是一样的?哎,那么也就是说我们这个时候我们就可以把这个用户名放到哪里了?哎, ui 点 ui 点什么? line, edit, the set, text 啊,用户名来了啊,密码是不是也同样的道理啊?哎,复制一下, 哎,复制一下这个就 password 好了。 psswid 啊,这个改成一是不是就可以了?哎,这个的话就是 password, 然后这个的话就是一个下黄线啊,是吧?他的名名称是不是下黄线啊?啊?这就已经很 快了啊,那么接下去来看一下是否能够实时的能够点击之后出现在上方,应该来说是可以的,因为刚刚我们进行了一个测试了,对吧?那比如点击这一行叫 aaa, 一二三, 对吧?这就来了,我点哪一行是不是就哪一个?哎,这,这就,这个就是我们相当于是我们这个信息我们接下去就可以改,通过他呢,就能够获取过来,并且能够修改了,对吧?那既然信息能够获取的到,我们是不是可以修改啊? 啊?比如说我们现在来修改对应的这一行的这个数据啊,那么我们就加一个按钮,这个按钮 button, 这个按钮,接下去是不是就简单了,是不一条语句就可以了啊?这个比如说是更新, 更新用户,对吧?呃,比如说更新用户, ok, 那么更新用户怎么个 更新法?我们首先要获取这里面的,对吧?获取这里面的,好,我们来右键转到槽,点击一下啊,点击一下,那么我们更新的话呢,首先要获取这个里面的用户名和密码,同样的,我们采用上面这个地方获取用户名和密码,我们上面是不是哪个地方写过啊?这里啊, 哎,我们把它拿过来复制一下,这用户名和密码就已经有了,有了以后我们接下去就拼接一下语句,是不是就可以了?哎,我们来 q circle, q string, 哎, string circle 等于更新语句,来回顾一下, update, update 什么 表? user info, 接下去字段, set, set 啊,用户名 user name 等于, 是不是要单引号,它是一个,它是一个什么类型?是那个字符串,哎, work char 类型,字符串,对吧? char 类型啊,那么我们这个地方是不是 use the name 拿过来,那么我们,呃,就用户名也也可以改,密码也可以改,那或者说你想改一个就改一个就好了,对吧?那么假设我们这里面只改密码好了,好吧?密码,呃,用户名我们比如说就不改了,就改一个好了,当然你想两个改就写两个,对吧?啊,比如说我们这个地方叫帕梭的,改这个啊,改这个帕梭的 password, 我们什么呢?拼接一下是吧?拼接一下,那么这就是拿过来的 password, 通过什么来定位 where 语句来定位 user name n a m e 等于什么?就是我们刚刚 获取过来的这个 username 吧。啊,获取过来的这个 username 啊,放家家里面啊,这就 ok 了,但是此时表里面会不会刷新过来?还不会,因此我们还要 select 一下吧, 对不对?这条语句执行一下是不是就可以了?哎如果说你想简单一点怎么办?把这条语句放到哪里 就放到一个自定义的方法里面,直接执行这个方法调用一下是不是就可以了,对不对?就不需要重复了吗?哎,那你修改的时候是也就那我这里面我给大家演示的时候就就直接简单一点复制一下了啊啊,那么 你写的时候不要这样写了,好吧啊你写的时候要更加的要严格一点啊,可以写的更好一点,然后把自己的代码要写的更好一点啊啊假设 我们现在看看把这个 c c c 的五五五改成改成再加个一一吧后面,好吧更新用户,哎,哦,没有那个 s q l 没值。哎。怎么样了?我们来看一看发生了什么问题。 发生了什么问题?哎,是不是没有没有更新啊,根本只是一个字不串而已啊。那么我们要执行的话是不是要用到这个 carry 啊 啊之前的那个 sococover 啊,点 e x e c 执行一下就 ok 了。好,那么我们再来看一下效果如何,效果应该很赞的啊。 好,我们来看还是一样五五这个地方加个一一更新是不是就来了,那速度相当的快啊,这边变一下三三三,是不是一样的 给他改成这个一二三,你看速度相当快啊。好,那么这就是我们实现了一个更新了哎,那么我们删除会不会删除是不是也会啊?怎么会啊,那我们马上来把这个删除功能来做一下啊 啊,那么删除的话呢?我们只需要一个按钮是不是就够了啊?也只要一个按钮,那么我们比如说就这个地方我们来改一下,比如说是 删除啊,删除用户啊,删除用户,那么删除用户的话,我们其实只需要知道选中的哪一行就可以,不需要从这里去获取, 对吧?我们点选了哪一行我们就可以把它删除吧,对吧?然后我们来还是一样给他做到槽里面啊,做到槽里面。首先这首先是不是这三行一句要用到? 到了我把它先拿过来再说啊?拿过来再说啊,这三行就是不是可以写成写到一个函数里面去啊?最好,对吧?啊?那么封装,自己要学会封装啊,那么在这里面的话我们就只需要,哎。 delete, delete 什么? 后面马上接上。呃,那个,那个 forum 来自哪张表,对吧?从哪个从哪个表里面进行删除啊?稍微温柔一点,哈哈哈。啊?那从哪个表里面进行删除啊? 呃,删除,删除什么呢?直接 vr 就行了,对吧?这些是不是都不需要?哎? vr 从这个用户表里面进行删除,根据什么来删除啊?用户名来删除用户名,这个用户名现在是不是没有?我们来获取一下。 q g 哎, user name 等于 n a m e 等于什么? 哎,感觉这里好像没有了,要么就是从上面去直接获取这个文本框里面获取,对吧?文本框里获取是不是最简单?那么这里面我们不从文本框里面去进行获取该怎么做? 如果不从里面进货去怎么做?有没有方法?那我们先简单一点好了啊?先简单一点, 其实就是 ui 点点 line edit, 对吧?这是不是根据用户名来的点 text 啊,其实也是可以通过,呃,通, 通过另外一种方式是可以的啊,我们先来把这种方式先给实现删除,现在应该已经能够删除了,对吧?嗯, 看一下,那么这样的话呢,真伤感,其实都有了啊,来点击一下,比如把 c c t 给删除,点击删掉了吧。啊?粘删掉了啊,那么我们,呃,我们再来重新再运行一下,应该 c c t 应该是没有了吧, 没有了,对吧?没有了啊,那么这样的话呢,我们关键是还得必须要借助这个东西,我能不能不借助这个东西来进行删除呢? 对吧?我能不能,能不能不借助这个东西来删除呢?哎,这样的话呢,我们就必须要知道的是什么呢?知道的是我当前点选的这一行 是哪一行?对,是不是这个思路啊?那么当前点选的是哪一行?有两种方式,第一种,当前点选的这一行这个参数是不是传过来了?搞个什么东西就可以了? 搞个全局变量,把这个东西复制到全局变量里面,我是不是能够马上获取 youtube name 了, 对不对?哎,那么我们就先采用这种思路来给大家来实现啊。那么搞个全局编案叫做什么? q model index 啊? q model index 啊,我们来看一下, 是不是首先要引入一下 q q model m o model 引电, ok, 那么我们来引入一波 q model index 其实就是属于当前行,对吧?当前行 q c u r r e n t current index 是不是这样?呃, in current index model 吧, m o d l 就是稍微长一点好了啊,我这里就稍微长一点好了,这,这是一个,我们来给他做成一个啊, 呃,这是一个指针,对吧?我们就给他直接声明成一个啊,变量好了啊,我们就不用指针了,在这里这样的话就可以直接进行复制啊,我们来看一下, 在这里面我们只要点选,我们是不是在下面加一行就可以了啊? current 这个 index model 等于什么?是不是就等于这个 index 啊?好, 好了,那么我当前的这个 model index 我其实是已经知道了,因此我只要在这里面直接获取就可以了,那么在这里面获取的话呢?我们其实就是这个 username 的这种写法是不是这样?或者是我们直接这个写就可以了,我们再来回顾一下,顺便啊把这个地方 ctrl index model 点什么 跟这个当前这个其实就是当前行了吗?对不对?行,已经确定了,是不是再确定什么就可以了?列啊,列,从这里面去确定啊,当前这一个列, at 第几列?用户名字第几列?第零列,第零列啊,转换成获取它的数据,用 data, 对吧?然后再把这个数据转成 string 类型, two string, 哎,啊,有了吧,啊,有了啊,那么我们这就 ok 了,我们再来看看, 现在的话应该是不借助上面了,对吧?不借助上面应该就有了,那么我们看看是否能够实现啊? 不借助上面,那么我们比如说删除个 b b b, 我们把上面给删掉,这个肯定是不会借助了嘛,但是当前选中的是哪一行我们也是知道的,对不对?那比如说选中这一行啊,删除看一下,这就没了, 那就 ok 了吧,我就注册一个,呃,一一好了再来啊一密码。这个啊注册一下啊注册成功正常感是不是都没有问题。那还有没有方法啊哈哈哈哈啊哈哈。还有没有方法 啊啊其他的方法啊。其他方法当然有了,我们可以直接获取当前的行获取当前行的这个缩影啊那 思路其实就是跟当刚刚的差不多啊,只不过呢是从怎么怎么里面去获取呢?是从 ui 点 table view 里面去获取啊。 ui 点点什么呢? table view 里面去获取获取什么呢?当前的横 to see current 什么呢? current index 对吧?当前选择的这一个这个就是当前选择的哪一行,我就是不知道了。那当前选择哪一行知道了然后我们就再来通过这里面去获取就行了,是不是就行了指定的这个 model 获取一下是不是就行了。那么这个方法大家可以后面自己去探索啊 啊我们就不多写了。那么刚刚刚刚两种形式你一掌握是不是就基本上是 ok 了啊啊已经通过相当于你已经能够掌握一个表的一个。真伤感了啊。也能这样的话下次。好接下去我想要回去比如 说我对哪部电影感兴趣啊对吧?我我可以把我的电影给他录入到我的这个数据库里面去对吧?然后给他拿过来好再来。 哎呀现在我这个网上有那么多的彩票号码中奖,我是不是可以把它存进去哎显示出来。哎呀数据库语句分析一下吧概率如何是不都可以做到 是不是很 ok 啊?哎那可以能够实现很多很多很多很多你能够想象到的功能了,这个就是一个非常经典啊,非常经典的一个案例了,给大家讲到了啊 啊,那么呃,今天的作业大家呢就要把这个啊用,就相当于是实现一个用户信息管理软件,对不对?用户信息管理软件啊,这就是不是很刺激了,就像比较完 整的一个软件了啊。那么这里面我大家有没有发现有个地方好像不太漂亮哎,这里面好像没有,没有给他 扩展嘛,对不对?哎呀哎,也不用写 ss, 想想 v b 当中我们学过扩展有个词 单词这单词是通用的,通用的单词能够自由的扩展,我们在 level 里面用到过一个属性 哎,奥特不是,除了这个奥特之外还有一个,还有一个 stretch, sti 听过没有,记起来没有好,我们就利用他就可以了啊,点选他设置他的这个属性嘛。 stretch 是不是 s t 啊?打完好了,横向的 stretch 勾上就可以了啊,勾上了呀,再再点一下就好了嘛,哎,是不是就可以了 哎,来预览一下,漂亮了吧这就漂亮了,你看填填满了吗?刚刚是不是没填满,现在是不是填满了,现在是不是填满了啊?就刚刚是不是空出来,我们再再来看一下,把这个勾去掉啊,对比一下啊,现在去掉了吧,去掉了,我们对比一下看看, 对比一下看看啊,现在是填满,刚刚刚是填满的,现在我们不填满,看看是怎么样的啊?那不填满就是你看这根线是不是就这样了,是吧,那你也就是说可以很想填满,也可以纵向填满,这个叫做横向填满,纵向叫做 whatever 是吧?一个叫做横向填满一个叫做 纵向填满啊我们如果说勾单纯勾上一个横向填满我们再来看一看刚刚因为已经看过了我们看看纵向不填满横向填满会是怎么样子的 哎预览出来你看横向填满了那纵向是不是没填满这里是不是这样的我们把它纵向也填满会是怎么样的呢哎把它再勾上纵向也填满我们来看看会怎么样的啊那么这样的话效果呃会比之前要漂亮很多对吧我们来看一下纵向也给它填满 哎这样填满可能就最后一行他就自动扩展对吧。自动扩展那么就其其实还是纵向不需要横向需要就可以了啊横向需要就可以了那这样就可以了 对吧啊那么我们今天回去的这个作业啊就通过他了那么我们先来把这个东西记下来啊这东西记下来这也太小了。 呃来记下来打一遍。我已经记住了啊打 s t r 属性设置什么呢? table view 表格内横向 扩展啊横向列扩展扩展啊使用属性什么呢? horizon 哎这个我们通过这个属性可以来代码进行设置啊啊 horizon to header h e i d e r stretch t r t c h last section 啊就通过这个 horizontals had a stretch last section。 啊谁弄出来的 啊是不是很长啊哈哈哈。很长他知道字起来比较好记啊中文可以中音翻译一下啊横向头扩展啊最后一列的一个扩展对拼接一下啊拼接一下对吧 啊老外就是老外就是这样的啊国风。是啊那么我们这这个地方好像还 缺了一个什么东西啊?笔记,笔记,我之前没提醒啊,笔记要你要把这条也要记下来,这条是不没记啊?笔记要把这条要记下来啊,比如说获取其中的某一列,对吧? 获取,获取什么呢?呃, table view 中当前点击行的 数据啊,对吧?这个是不是这个?哎?点击行中的数据啊?呃,这个中中间的零零表示什么呢?第零列 是不是第零列?第零列所以为零的这一列吗?第零列行的话就是当前行,不是,第一行 已经是当前点的内行了,对吧?啊,当前点的内行啊,这就非常的重要啊,那么所有的真商改,我们就通过数据库语句都已经 ok 了,接下去 靠大家发挥了,一个是把这个作业要完成,另外一个呢就是完成的同时你可以进一步的去深化啊,进一步的去深化。好了,那我们今天的课程就到这里啊。

我是黑猫,本节我们来讲一下 pyqt 五创建第一个窗口,我们呢使用两种思想,一种呢是面向过程的变成思想,另一种呢是面向对象的变成思想,那么当我们使用面向对象变成思想的时候,我们呢就可以很方便的把我们的 ui 文件直接呢转化成拍摄的文件, 那么自动转换之后呢,那这个呢就是一个类,然后呢我们之后就可以使用啊这种继承的这种面向对象的思想来进行后面的编程。那么下面呢我们再来看一下 p y q t 五的这样一些模块。 p y q t 五呢是由很多个啊这个类还有函数来组成的啊,那我们呢下面呢啊主要是学习这三个模块,一个是 q t core 啊,也就是核心,那这里的模块呢,它是包含了这个非 g u i 的功能设计,那就是没有这个界面,然后呢都是一些比如说文件,文件夹,时间数据流的这样一些操作啊,还有进程和线程。 那么 q t g u i 呢,就是用来处理啊我们的这个界面的,比如说窗口系统时间处理这个图像啊,然后呢还有绘画字体和文字, 然后呢还有这个叫做这个叫 qt veges, 它呢是包含着一系列创建桌面应用的 ui 元素, 这里呢就可以理解为一些组件啊,桌面的一些组件,然后呢还有很多呢其他的这些模块,我们呢只需要简单的了解一下,那后面呢我们之后用到的时候啊,再来进行学习,比如说 q t 这个叫毛 t 眉点啊,也就是多媒体, 那也就是操作一些摄像头等其他功能,然后这个呢很显然 bluetooth 啊,这是蓝牙的设备。好,然后呢是计算机网络好,接下来呢还有 protein position 啊, position 啊,这个呢就是位置, 然后呢下面呢我们就只需要简单的看一下啊,有一个印象,这里呢这些呢列出来的就是 q t 啊,它这个主要的这个功能模块。 好,那这些模块呢,我们呢大概了解过之后,那接下来呢,我们就开始进行啊,这个 p y q t 的一个编程。好,然后呢我们来进入到我们的 p y 叉。 好,这个呢我们叫它,呃,面向过程编程啊,或者说我们叫它 test 零一吧, test 零一, 然后呢我们呢需要 import 啊,先导入这个系统模块,之后呢会用到。好,然后呢呃,我们呢创建这个桌面的啊,那我们呢就使用这个 curity mages 这样一个库。 好,我们呢 from 啊 p y q t 五点儿,然后呢 q t v g 啊,这里呢是包含了各种桌面应用的这样一些元素,然后呢导 导入呢? q application, 然后呢还有 q vigid, 那么这个模块呢,现在呢就已经导进来了,然后呢我们创建这样一个应用的对象 application。 好, q application, 然后呢这里呢是我们的命令行的参数列表, s y s 点 a r g v。 好,那这里呢就是默认的第一个参数,那就是这个程序本身的这样一个路径,把它给传进去。 好,然后呢接下来呢就是创建窗口啊,这里呢我写一下注释, 这两步,看一下叫创建窗口啊,因为框架呢已经封装好了啊,比如说我们的窗口呢叫 window。 好,我们呢直接使用这个 q v g 进行创建,然后上面呢也给他写一个注释啊,创建应用对象。 好,那这里呢,窗口创建完之后呢,我们呢可以给这个窗口呢设置一些,比如说大小啊啊,或者是位置。 呃,然后呢,接下来呢,我们让这个显示窗口先把它显示出来,先用默认的叫显示窗口啊,那就使用 window 点儿瘦。 好,然后呢接下来呢?呃,进入到主循环当中 啊,就是防止这个窗 创建完之后呢,直接退出了啊,这叫应用主循环啊,然后呢我们现在呢,现在运行一下看一看, 运行完就结束了。然后呢进入主循环呢,就是 s y s 点 exit 啊,退出。然后呢 a p p 点啊, e x e c 当然了要加一个下划线。 好,现在呢这个窗口呢就已经出来了,默认呢就是这样一个窗口。好,接下来呢,我们可以啊改变一下它的这个大小啊, window 点 reside 啊,改变大小 啊,比如说六百四百。好,然后呢接下来呢,给他移动到一个位置,相对于我们 这个屏幕的左上角就是零零进行偏移啊。 window 点目,我们开始进行移动,大概在我这写个三百,三百的位置啊,移动完之后呢,接下来呢,再给他设置一个标题啊, window 点 set title, 这叫 set middle title, 设置标题好,黑猫编程 p y q t 五 叫系列教程。 好,然后呢我们就运行一下。好,这里呢就是我们的这个标题。好,嗯,然后呢还有呢, 比如说其他的一些,比如说我们还可以呢啊,设置这个图标等等,在 window 上图标可以显示,但是麦克上图标显示呢,有一些问题,这里呢我就不再展示它了。然后呢,这就是我们的面向过程的编程 啊,写个注释。 p y q t 五啊,第一个窗口程序啊,当然呢,目前的窗口程序呢,我们都是使用我们的纯代码编程 啊,这里呢,我们需要要掌握一下这个基础的知识。呃,然后呢,这里是面向过程的编程思想, 面向过程啊,编程 好,然后接下来呢,我们使用面向对象,面向对象的话呢,我们呢,先来创建这样一个这样一个头文件吧,叫类。呃,这个呢,叫做 kite, 我的 u i 叫 kite u i, 当然了,它是个 python 文件。 p y q t 五的第一个窗口程序啊,这个是面向对向 啊,变成四项。呃,然后呢,这个还是一个 u i 啊 u i 界面儿类啊,那么如何创建这样一个 界面呢?呃,这里呢,我们还是要导入一些内容啊,我们呢,这样 from t y q t 五点儿 q wigis 啊,然后呢,去导入 q visit。 导入完之后啊,我们呢,就创建这样的一个啊,创建这样一个类, 创建一个窗口类, 那这个类的名字呢?我叫它 class, 叫黑猫的窗口,叫猫的窗口啊,呃,然后呢, 但是呢,它要继承 q v g, 这是使用面向对象的这样一种思想啊,然后呢,初始化 in it。 然后呢,这里呢,我们首先要调用这个,因为我是继承,我先调用副类的啊, super 点 uni。 然后呢,下面呢,我再来写上一个自定义的 d e f 啊,我的 uni 它 u i 啊,这里呢,先 pass 掉 好,然后我们再写上面的。呃,副类的构造函数已经有了。之后呢,我们再来调用自己的,因为自动会执行啊,叫 unit ui, 这下面是默认的,他说他有一个这个使用啊,这个 unit ui 呢,也已经有了,有了之后呢,我们就 set up 点 这里,大家可以看到,其实呢, self 就是拿到我的这个 window 对象了,呃,然后呢, self 点 reset 啊,比如说六百和四百, 好,然后呢, self 点目,我要移动,移动到三百,三百,好,然后呢,这个叫 self 点 set size window title。 之前呢,这是一种面向,对啊,面向过程的编程思想,现在呢是面向对向,然后把它抄过来。 好, 那么在这个里面呢,这里呢,我们思考一下,其实呢,这个 cure vigid 好,它是继承的,然后呢,这里的 self 呢,就是我们之前的啊,这样的一个 window, 这样一个对象。好,然后呢,接下来呢,还有 self 点瘦,我们再把它写成。 好,那这里呢就 ok 了啊, ok 了之后呢,接下来我们还有主窗口程序来调用它,那这个呢,叫做叫做 men window 啊,这叫主窗口 门 window 呢,它是 from 啊, cat ui, 然后呢 import。 这里呢,我们来看一下导入呢,这个叫 ui 文件,但是我要导入的是这个窗口啊,导入一下这个开头运动好,黑猫的窗口, 然后呢,接下来这两段呢,也要倒进来。 好,那么这个 cure vigit 呢,就不用了啊, cure vigit 呢?其实我导入了这个以后,开的 window 啊,就已经有了,这里的 cure vigit 就已经导进来了。好,然后呢,接下来呢,我们创建一个调用窗口的方法。 好,那我们定义一个,比如说打开啊, open cat 运动 好,然后呢,这里呢,就是 a p p 等于 q opplication 啊,先把它写上 s v s 点 a r g v, 好,创建这样一个应用对象, 然后呢,我们如何去创建我们的这个?呃,第一个这样一个窗口呢? 好,那就是 window 啊,它等于什么啊?我们之前的累啊,叫什么名字呢?叫做 kite window, 我把它给写上。好,这样的话就已经创建出来了这样一个对象。 好,那这个对象呢?本身就是什么?当我创建完这个对象的时候,其实大家可以考虑一下我们这里的 cf, 其实就是我们这个对象本身。好,这样的话我们就顺理成章了,就可以往下写了, 主持一下, tight window 里面的 self 就是当前的 w 对对象。 好,那这里呢,是创建完,创建完之后呢?接下来呢,还是设置一下进入主循环啊, e s i t 啊,也就是说这一部分呢? 我们呢,没有就是说啊,一步步学习,这里呢只是说在类里面啊,自动的,他就已经给我们在 in 的初始化里面就已经把这里面的内容自动执行了,因为 in 他里面呢调用了这个叫 saf。 点 这个 unit ui, 这里呢,我们来看一下啊,就是 unit ui, 它已经调用了。 好,那我们呢,再回到这个闷 window。 好,然后呢,接下来呢,就是 这样,如果是主程序的话呢,就是这样,如果 if name, 如果是主程序 name 呢,就是等于这个 name。 好,如果这样的话,我们就 open 这个 kite 运动,然后呢,我们再来运 进行一下,哎,他发现呢是报了错误,我们来找一找 啊,这叫 s y s 一个字, a p p 点 e x e c 这里参数呢,没有写,因为发现它直接退出了,就是有问题的啊。黑猫黑猫编程 p y q t 五系列教程 好,或者说呢,我们现在可以改个名字, 面向过程好, 然后呢下面这个呢?为了和他啊,这保存一下,这个呢?为了哈,为了和他做一个区分啊,在开的 ui 这里啊, 给他来一个面相对象。 好,然后呢再来运行一下。好,那我们本节课的内容呢,就先到这里。

q table viewy data free 是常用的组合,本视频继续这个系列分享的主题有此前代码的完整回顾。再次讨论 post event 的机制。 data free 的过滤操作。 本系列第一个视频有第三人开发窗体的详细内容,这里用第三人回顾一下。界面最主要的是 tw 两个按钮,一个信息栏。最下面的大文本编辑器用于模拟数据员,通常的数据员有文件数据库,网上实时抓取数据。这里只是用个简单办法模拟一下, 编一一下这个文件,结果是一个 py 文件。内涵界面所有空间的代码,还有曹函数的连接定义,这里的类名是 uavino, 这个名字后面有用, 这是业务逻辑代码。由于继承了 uv 运动界面定义方面的工作,就不需要我们做的。程序员的主要经历应该是开发业务代码 窗口。类定义的代码是固定套路,抄来即可。这里有个界面整体风格的选择,不同平台提供的选项是不同的,可以打印出来选择一个。 通过补写注视。回顾一下以往的代码。然而是显示按钮的槽函数,它有三项功能,读取数据,在自适应列宽模式下显示首条记录 用于列宽。自动适应显示全部数据的函数被 post 事件对列中任 l 函数实现了在手动调列宽模式下显示全部数据,这种方式显示数据 速度是很快的。特与式清除按钮的槽函数 msg 适用于显示信息。 customy vent 用于获取自定义事件。如果是 post immigrant, 则调用其靠函数。 post immigrant 函数封装了 post event posing more k went 是自定义事件,他继承 q bent。 出事化时要提供回调函数和参数,当该事件被捕获时,执行回掉函数。 dataframe table mother 是 q table build mother。 用 dataframe 实现初始化时,传入一个 dataframe, 然后以个 dataframe 为核心实现规定的一些函数。 详细的解释请参考本系列第一个视频, sort 函数,点击表头的槽函数, sort 函数先排序,然后发送数据修改的信号。艾玛回顾完成了。下面通过一个势力深入理解 post event 运行机制。 为了深入理解 post event 机制,模拟一个阻塞式任务,延时一秒,模拟任务运行过程,任务完成后填写表格并显示出去。 借用一下显示按钮,把原本的代码注视掉,模拟提交五个任务, 此前要传入一个空的妈的模拟过程启动时显示开始,结束时显示结。 这里有个小 bug, 修改后运行, 点击显示按钮,五秒后五个模拟任务一块显示出来。 我们希望任务完成一个显示一个,而目前的结果并不意外,因为在逐视舰循环中,一起执行了五个任务,当然是全部完成才能显示。修改代码,把马克扎韩束剖死出去 运行,点击显示按钮,结果还是五条信息一起显示出来,而不是一个个显示的。 思考一下原因,当前主事间循环 post 五个事件,给下一个循环,下一个循环收到了五个事件内涵。五个任务当然是全部完成后才能显示结果。 为了达到任务完成一个显示一个的效果,应该让任务形成烈士先 pose 一个任务,任务后用一个实力变量保存, 修改一下任务的代码,首先是任务号部分,这个任务完成后,如果任务号小于五,再 pose 下一个,否则整个任务结束,信息栏输出结束 运行代码。这次的效果符合预期, post spent 运行机制的势力就到这里。下一个主题是 data free 的过滤操作, 代码恢复原状,用 desire 编辑界面, table biu 控件,增加双击事件,定一槽函数,并连接到双击事件上。 保存界面文件,然后编一下,在双击试电中实现过滤操作。取出双击的行号 列号,双击单元格的值,然后用列名获值组成过滤表达是双击的列名是日期,品种,批发市场这三个字段时做过滤操作,双击其他位置时恢复原数据 运行代码测试一下,过滤操作是 ok 的, 发现一个爆 过滤操作后,在培训触发了一个警告, satin with copywarning both, 根源是 in place we too。 过滤操作是一个 view 更新 view 的排序引发警告。解决方法,如视频那样更改代码 测试一下吧,不存在了。 对于价格来说,这里采用上下浮动百分之二十的范围进行过滤, 测试一下,功能良好,符合逾期。 本期视频就到这里,欢迎您点赞、关注、留言,谢谢! 不管 activated。

哈喽,小伙伴大家好,欢迎收看刘静编程拍摄高级进阶教程第三期 pyqt 五以及这个于 qt 点赞有的一个对照分析啊,那么我觉得这样一节课程的话呢,对于我们刚开始来学习这个 啊 p y q t 五的话呢,我们应该来说是非常有必要的啊,因为我们有些小伙伴在开始做的时候,实际上就不知道如何把这个 p y q t 五,也就是说这个 q t 的设计的这个环节与我们的这个呃 q t 五 这个 pyqt 五这个代码相对照哎,这里设计的东西跟我们那边的这个代码到底有什么样的关系啊?这一层理解的话是非常非常有必要的啊,那么之前的话我们已经给大家讲过了,我们这个呃如何来搭建 这一个啊?用 py trump 对吧?以及 pyqt 五再加再加上 pyuic 啊,这个实际上就是 pyqt 五啊拍死的一个变异器对吧?当中利用的是 pyqt 五的一个变异模块来将我们的这个 qt 点三个啊,也是这个 qt 的这个界面设计的 ui 编意城,这个什么 py 文件啊, ui 文件编意成 p, 哎,其实说实话应该是一个转换成 py 文件对吧?那么这样一个过程转换过去的代码对应啊,我觉得我们还是非常有必要啊,把它具体其细节分析。那么上一节课的话呢,我们仅仅只是对 qt 五啊做一个简单的了解,然后呢,我们做了一个纯代码的一个分析,对吧?那么我们来了解到的是呃 pyqt 五的一个可视化界面环境 搭建,这是我们之前所学到的啊,然后我们上一节课的话,我们简单的写了一个,这个用 py qt 五啊,呃,写了一个这个代码,这个代码是什么样的代码呢?就是一个 ui 的代码啊,也就说是界面啊,做一个界面 啊,这相比我们之前的这个 tk 啊,来写这个界面,实际上大家看看啊, tk 的话,我们导入的是 tk 的库,对吧?而我们现在写的是 pyqt 五的这样一个界面的话呢,我们导入的是这个 pyqt 五的这个库啊,无非就是导入的库不一样。 然后完了之后呢,我们这个 pyqt 五的话呢,它的功能的话更加的强大啊,因为我们这个 py 啊,它的发展历史应该来说是非常的早啊,可能好像我印象当中可能比加我还要早,所以啊,它的这个 qt 的一个发 qt 的这个发展啊,它的这个底层的这个 c 加加的库啊,实际上是 很早很早的,对吧?他就已经积累起来了。那么 c 家的这个这个库啊, q t 五大家可能还不太清楚啊,他这个 q t 五的这个库啊,他不仅是基于这个,哎,有有应对于这个拍摄啊,拍摄的话我们现在知道啊,一处编影也是处处编影,对吧?也处处都可以使用啊,它是一个解释型的一个代码啊, 那么他可以在苹果平台上面去用啊,可以在我们的这个呃 u 啊啊,这个什么 windows 平台上面去用啊,也可以在我们的其他的 mac 电脑上面去用啊,这些都可以去用。那么这个 pyqt 五的话呢,实践就是这针对于我们的 呃, qt, 针对于我们的这个什么拍摄的这样一个代码来进行翻译的这么一个库,当然啊,既然有针对于拍摄的代码了啊,所以我们的 qt 啊,同样的还有针对于贾瓦的代码,对吧?将我们的界面设计成 是吧?加我的变成加我的东西,对吧?然后呢我们再加我,再进行加我,设计完成之后,我们就可以再进行什么呃,具体的代码一些操作怎么样?这是界界面的一个设计啊, ok, 也就是说我们这个 qt 啊,实际上大大的对我们的这个可视化界面啊的这个设计啊,应该是取到了非常大的帮助啊,他有很多很多的空间去可以简化我们的这个分析啊,简化我们的设计,对吧? 通过我们前面的这几集的代码的话呢,已经给大家了解到了我们这个界面该如何去设计的啊,以及他旁边包含了一大圈的这样一个呃,这个这个呃叫做什么 一大圈的,这这这这这这这空间对吧?这空间他都已经做好的啊,那么我们直接使用就行了,接下去的我们的这些时间的话呢,就是要针对这些空间啊,慢慢慢慢的一个个去进行解析 啊,那么我们呃之前的话,我们知道简单了解过这个 pyc 啊,是怎样去转换成拍神的代码的啊?通过这个拍神的一个呃,拍神拍神编辑器去调用我们这个 pyqt 五的一个代码 啊,一个一个模块啊,来进行转换的,对不对? ok, 那么我们首先我们今天要了解到这个对照分析的时候啊,我们这不是要将这个 pyqt 五的这个代码于 第三个这个代码进行对照分析嘛,对吧?我们如何来进行对照分析呢?我们在对照分析之前,我们先来了解一下一个空的这一个 q t 五的这个 啊,这个界面设计的这个程序对应到我们 qt 五的 piqt 五的这个代码到底是怎么样的,哎,这是非常有必要的,我们要,哎,我们来了解一下这个空的代码到底是怎么样的啊,以及我们这个通过手工去 编写纯代码的这个方式啊,是怎么样的,对不对?我们上一节课的话,已经通过写了第一个这个 pyqt 五的程序,对吧?我们通过利用这个 vigit 啊,利利用这个 vigit 啊 q placation 的话,就是一个进程,这个程序的一个进程,对吧?那么我们呃来写了一个 q vigit 啊, vigit 也就是说是空间啊,这空间的话,窗体里也是可以继承这样一个空间的,对吧?那么 我们来对我们的这个手工纯代码的方式就可以有一个, 呃,写出来这个 gui 的一个界面啊,这是一个空的一个程序,这是我们上节课写的啊,当然还有一种方式就是我们通过这个 qt 点三个啊,这样一个设计来针对性的自己可视化的一个界面规划,对吧?哎,出来的一个界面啊,这个 的话出来之后就是一个类啊,这是我们之前也是了解到的啊,那么我们呃需要这里需要的是要理解啊,我们这个 q t 点三啊, q t v 啊,它是一个基于所有空间的这个积累啊,它是包含窗体、空间按钮、文本等等的这样一个 一个积累啊,这个积累是什么意思呢?其实就是负累对吧?他是包含某个窗体的对吧? ok, 那么我们今天啊,马上来制作一个空的窗体的程序的样子啊,我们通过 qt 点三个的方式来进行制作啊,我们来看一下,有的小伙伴肯定啊,已经在之前的工作当中啊,已经已经啊,已经就是了解到了,对吧?你这个怎么去做啊?那么我们先把这个上一个程序给删删掉,我们重新来制作这样一个界面啊,好了,那么我们来看一下, 这一次我们是第三期啊,我们来制作一个第三期的这个 qd, 第三个, ok, 我们来进行设计啊,设计的话呢,我们有两处,第一处我们是从这个项目地方右键,对吧?然后找到什么就找到这个, 哎, external tours 啊,一个地方啊,然后找到 qd 第三个,对吧? qq 第三个另外一个地方啊,还有一个地方就是在这上面啊,工具栏 托尔攻击栏,托尔攻击栏,这个攻击栏这里呢,有一个叫做 external 啊, torse, 对吧? qt 点三个啊, 那么小伙伴们我们现在的话呢,我个人觉得我们在编写这个 py charm, 在使用的时候呢,我们进来已经进阶到啊,慢慢慢慢从零基础啊,慢慢进阶到高级,到进阶到高级的时候呢,有的小伙伴目前,呃为止可能还在用这个中文,对吧?中文的这个呃,编辑 一起啊,中文的这个开发环境,实际上啊,大家要知道啊,用来用去是这几个英文单词,对吧?所以我建议你也不需要再去把它翻译成中文,当然你也你也可以把它翻译翻译成中文,对吧?当你配置完成之后,也可以把我们之前的这个 教程当中把这个点 b ak 这个扩展名给去掉,我们就可以把这个资源文件变成中文了啊,那么我个人建议的话呢,实际上没有必要再去把它变成哎,中文啊,我们就用英文的开发界面就可以了啊。 ok, 那么这个时候我们来打开它之后,我们发现啊, 我们现在来新建一个设计师的界面,对吧?这是 qt 第三个啊,大家看到啊,我为什么说 qt 第三个啊?实际上是他这个地方是这样的, qt 第三个啊, qt 设计师有个翻译对不对?有个翻译的啊。好了,那么我们来看到我们这个地方的话,有很多的选项, 大家看一下啊,这个选项是一个模板,大家看到没有?左侧的话呢?是就是一个模板啊,风啊,然后 dialogue with 什么? buttons buttons, bottom 是什么意思啊?就是有几个按钮在这下面啊,就是右侧显示出来的一个效果,我们看第二个啊, 呃, dialogue with buttons right 啊,就是在右侧对不对?在右侧的一个按钮, ok, dialogue result buttons, 也就是一个 dialogue 啊, dialog 什么意思啊?是没有我们这个 怎么这个这个这东西的啊,就是没有这种,没有这个这个,呃,这个放大缩小这个东西的,对不对?放大缩小的这样一个按钮的啊, 那么这就是大老哥。我们这呃眼前的这个东西其实也是一个大老哥,对吧?也可以自首,也可以说是一个大老哥啊。好,那么我们下面的话呢,有个叫做 man man window 啊, 门温度,这个门温度的话呢,我们是上节课给大家有用到啊,这个门温度他有什么样的好处呢?他有自带的一些菜单栏,有自带的一些,比如说是,嗯,排序,对吧?比如说中间的一个结构啊,那么这个地方实际上是对我们的 vigit 这个,呃,这个这个空间啊,它的一个 v 九的这个积累的空间,一个一个一个叫做什么?重写啊?重写,他重写了很多个功能,也就是说我们日常的在开发的时候,我们可能更多的会去使用这个 man window 啊,因为利用 man window 的话呢,我们就会 可以有一些就是说他已经制作好的功能,我们就可以直接去使用了啊,这个就是没有 window 的一个好处,对吧?没有 window 的一个好处,那么最根本的还是这个啊, vigit w i d g e t。 啊, vigit w i d g e t。 啊,这个 vigit 又来什么用?这个 vigit 就是一个最基础的一个模板啊,最基础的一个积累,他的一个窗体空间啊,他的一个窗体空间,或者是我们其他的按钮空间,实际上也是积累是继承于他的啊。那么我们右侧的这个地方, 呃,我们的这个界面大小的话,我们他其实有这个啊, q v g a 啊, q v g a 以及 v g a 的一个这个其实是用在哪里的呢? 这些的,呃,方式的话,实际上是它是用在一些那个呃小的,小的设备的啊,就是小的一些平板啊,小的一些, 嗯,这种这种可可嵌入式的设备啊,因为我们 qt 的话,我们杰克 c 加加,我们会做一些嵌入式的开发,会比较多,那么我们这个地方呢,屏幕大小我们使用默认大小。好了,因为我们做的是桌面单的程序啊,桌面单的程序我们可以完全可以用这个默认大小啊, ok, 那么我们此时来 来创建一下,选完之后我们创建一个,创建一个,我们此时的话,他这个地方显示了一个 phone, 也就是创体,对吧?创体创建名称是,呃,昂昂抬头,昂昂抬头的也是还没有被命名啊,我们此时可以命个名保存一下,点击保存, 双体另存,为什么呢?双体就另存,我们这个 ljy 要死。好了啊,我们这个地方另存,为什么呢?我们就另存为,比如说是 alj, 呃,这个叫做 aljy, test 零零三, ok, 就 test 零零三,零零三,好了啊, 了解 ui, test 零零三, ok, 这时候我们就是怎么样?这是一个 ui 窗口,大家看到没有,这是一个 ui 啊, ui, ui 是什么?一个意思啊,这个 ui 其实就是啊,就我们就是一个设计界面嘛,对吧?此时保存就 ok 了,对吧?点击保存。哦, 好了,那么刚刚讲到了一点啊,就是重要的一点就是 q v j, 这个地方是非常重要的啊,这个地方 q 啊,其实都是大写的啊, q v j t, 对吧? q v j, 这个 q 是大写的,大家注意啊,这个地方,呃,在拍摄当中,我们这我们的这个 大小写是非常有区分的,对吧?包括我们 c c 家家啊,包括我们的这个加了啊, c 十二,这些大小写都是有区分的,所以大家呀,在编写代码的时候一定要注意这个大小写的关系啊,大小写的关系, ok, 那么 我们这个地方我们来继续看下去啊,我们现在是一个空的吧,对不对?现在是不是空的窗体啊,空的窗体的大小,我们可以来看一下这个属性啊, 四百乘三百啊的这样一个大小,默认是四百乘三百,我们看到这个属性啊 的一个属性,就是他的专门处理的话,他里面分成 x y 以及这个啊,以及这个宽高,对吧? xy 是指这个从左上角开始的啊,左上角就是说屏幕的左上角,在这个最底方啊,这个地方,屏幕的左上角,这窗体的左上角,这个左上角,我们就是 xy, xy 从零零开始啊,最左上角是一个啊,大家看到没有,我鼠标锁锁点的这个地方左上角是一个零零啊,零零,当我们屏幕的左侧啊,我们就是屏幕的这个水平方向的,就是 x 啊, x x 就有这么多,对不对啊?屏幕的垂直方向啊,就是 y 啊,屏幕的垂直方向就是 y, 那么他的呃, xy 就是这样子来看的啊, xy 就是这样来看的,然后呢,也就是说我的这个窗体啊,待会启动的时候,他会在我们的这个零零 这个点,然后呢,他窗体的宽高就是啊,宽高就是四,宽是四百,高是三百,这是他默认的一个情况啊,绝美区域啊,那么我们把这一个其实可以记一笔啊,那么 在我们的这个什么 q t 设计 t q t 点三个啊,第一 s i g n e 啊,在我们的 q t 点三个啊 啊,设计师界面,设计师界面,我们的看他的属性啊,这个绝美垂这个属性是非常有必要去认识的啊,绝美垂直属性,我们来看一下,呃绝美垂直属性啊, 啊 g e o m e t y 啊,这么去属性,那么这个属性的 x 代表代表啊,代表啊 啊,窗体出现这个叫做出现的位置啊,位置是在啊这个屏幕啊屏幕的左上角,我们看看啊,是不是这样啊,左上角,我们待会来看一下啊啊 y 的话呢,我们啊代表 窗体哎,左上角水平方向的零的位置左上角水平方向方向的零的 啊,零零的位置啊,我们其实这个在以前的这个 vb 的基础的界面啊,就是可视化桌面的开发的时候我们就已经给大家讲到了什么,就已经讲到了我们这个屏幕左上角这个位置其实就是零零,对吧?啊,或者我们一些相对的 一些窗体的一些情况,屏幕啊或者相对窗体的左上角一半也是零零啊,那么窗体出现啊,呃出现的位置是在屏幕左 啊,上脚垂直方向外的话是垂直方向对吧?垂直方向哎方向的 零的位置啊,零的位置, ok, 那么下面还有一个宽高对吧啊默认宽度四百啊,像素啊,这个地方单位应该是属于像素啊,像素 啊,四百啊,那么高度默认高度啊,默认高度是多少?三百,对吧?三百,那么我们来看一下啊,是否是这样子啊,是否是这样子, ok, 我们保留一个空的创体啊,我们把它关闭掉,关闭掉以后我们回到拍全,我们看到这个地方我们刚刚保存的是 ljyt 四零零三,对吧?我们现在来生成一下啊,通过 py iq ipyuic 来生成,对吧?我们点击这个工具啊或工具,然后呢点击这个 xtoner, 然后再点击这个 pyuic, 对不对?此时我们就可以生成同名文件的 py 文件啊,我们来看一下,右键点击生成哦,已经生成了,对吧?大家看到了,呃,他的一个变化,对不对?相同文件名称的一个 啊,扩展名是不一样的,点 py 对吧? py 文件啊,我们上现在双击打开它啊,双击打开它,那么这个的话呢,是我们其实在之前编意的时候为什么是相同名称啊?因为我们在这个地方设置的时候是相同的,大家还是要复习一笔啊。这个地方我们来看一下,呃, pyus 是不是我们用它来进行变异的,因为它毕竟变异的时候我们采用的是拍神变异器啊,拍神变异器,拍神变异器的时候我们调用,首先 m m 是不是猫斗,对不对?我们可以理解成猫斗,我们来调用的是一个模块啊,拍神,首先是拍神变异器啊,拍神变异器,然后我们调用的是, 哎,这个地方其实也可以说是他的一个是解释器啊,解释器对不对?那么我们然后呢就是调用一个模块啊,一个参数,参数是模块的名称 py qt 五下面的 uic 下面的 pyuic, 对吧? 我们将当前文件的名称,也就是发由内当前文件名名称转换成什么呢?目标,哦不就对不对?转换成目标文件是什么呢?杠杠欧,目标文件文件名称 without external, 因为默认的话呢,是 我们是有这个哎 x 腾讯默认情况下,我们这个文件的话,他是有一个这个 u u i 的一个扩展名,对吧?我们转换过来的文件名称是不要让他有有有这个什么扩展名为 ui 的啊, ui 扩展名就不要,所以我们这个地方叫做 without without 什么呢? extent extension 对吧? without extension 啊, without extension。 那么我们后面的话呢,再加上自己手工连接了一个点 py 啊,这是一个他的一个呃叫做什么扩展名啊?手工连接的对吧?手工连接的好,我们现在回到这里,我们刚刚给大家内串命令啊,做了一个简单的解析啊, 那么我们把这串魅力简单解析的话呢,还是写一下啊,因为我们之前好像是没有给大家去去续写过啊。 补充一下,补充命令解析啊。呃,补充,呃充这个什么 p y p y u i c 命令解析 啊,命令解析, ok, 那么我们来看一下,把这一串拿过来,对吧?呃,那么使用这个 python 啊,点 x e 啊,解释器,解释器,然后呢? 呃对吧?呃,这个地方我们就是来说明一下,说明的是什么呢?杠 m 啊,表示 model 调用 某个模块啊,某个模块啊,叫什么模块呢?就是调用的是 pyqt 五下面的 pyuic 模块对吧? pyu 的 uic 模块啊。 啊,这里啊表示什么呢?吊用,吊用 啊,这个模块,对吧?这个模块,那这个模块的话呢,也是我们自己已经下载过的啊,在我们相应的包文件里面,我们是不是之前有这个呃,通过 pip install 然后 pyqt five, 对不对?这样一条命令就可以把它 下载下来,并且进行安装,然后呢我们这个地方杠欧就表示目标文件啊,杠欧啊欧表示啊,目标啊,生成,生成目标, 生成目标文件啊,目标文件。那么呃,这里,呃使用什么呢?使用这个,这个我们 就是表示当前的文件名称啊,这个啊表示,呃,这个文件名称, 这标是什么?什么文件名称呢?就是需要转换的啊,转换的原文件文件名称名称, ok, 那么我们下一条我们来看一下啊杠欧就是表示要生成啊表示, 呃需要生成目标文件,对吧?需要我生成目标文件。那么这里使用这个什么呢?呃相同的文件名称,但不含扩展名啊, 这里使用这个这个表示,哎表示于原文件 相同的啊,余额文件相同的, 哎什么呢?文件名称,但不包含扩展名, 扩展名的目标文件,对吧?那么扩展名什么呢?扩展名,我们扩展名啊,我们通过,哎自己连接连接点 py 啊,那么最终表示, 那么啊最终什么呢?表示什么呢?表示生成的是,嗯,拍森的拍森类型的文件啊文件。那么我们这个 地方呢,给大家还是细细的解说一下啊,是非常有必要的啊,好了,那么大家呢还是要去理解啊,那么我们现在呢就是相同文件文等名称的一个目标的 py 文件,对吧?我们自己来连接的, ok, 我们发现生成的这样一个文件之后,上面的都是一些什么?拍摄当中我们使用这个 啊井号来表示啊,使用这个井号来表示注视,对吧?使用井号来表示注视,那第一行是有作用的啊,第二呢,我们是采用 utf 八编码的形式来进行生成的,对不对? ok, 那么我们来看到啊,这个地方有一个说明啊,就是啊,凤 凤也是,也就说是一个窗体接口,通用的,来自于什么什么,哎,这一个对吧,来自于这个文件的是不是他已经说明了幺九 its 零零三点 ui 的一个,哎,来来 生成的啊,同样的这样一个文件来生成的啊,那么酷瑞的 bi 什么呢? pyqt 五 ui 啊啊,来来,他来创造的啊,他五点一一,三点一,我采用的是这个版本, ok, 那么我们来看一下警告啊,说明一条,我们他这个说明啊,所有的改变。 made in this fire will be lost will be lost will be lost。 这个文件当中啊,我要比老师什么可能,可能会有所啊,生成的这个文件可能会 有所丢失啊,对吧?可能会有所丢失,我也不知道丢失什么东西啊,那的这个东西总归是为了安全起见吧,人家都会去写一句的,对吧,不保证可能生成的东西完全一样啊什么的这种,但是基本上生成都是可以的啊,那么我们主要的呢,还是要看这个地方,这个地方我们上次啊 上一节课程当中已经给大家解释过了,应该来说是解释还是非常详细的啊,那么这个地方首先是调用 from fram 什么酷的名称,对吧? pyqt 五啊, prqt 五,然后呢,导入的是 py, 呃,这个 qt 的一个啊,其实就是导入 qt 的一个核心啊, qt 核心, 这是一个 dll 文件啊, ddll 文件啊,这也是一个,这是这也是一个三个 dl 文件动态链接库的一个啊,类名 啊,那么我们导入的是这三个啊,这三个好,我们可以其实从其实你如果说想要仔细的去看的话呢,你可以去找到你自己的这个呃, pyqt 五的这个文件啊,去对照就行了啊, 那么我们这个地方我们就不继续往下去仔细去看了啊,那么我们来主要是对照我们这个地方后面的这里我们看到啊缝,对不对?首先 他是一个凤啊,凤这个凤其实表示的是一个窗体嘛,对不对?就表示一个窗体啊,但是他这个类的名称首先就生成一个类嘛,对吧?我们上节课是不是给大家讲过生成一个类啊?生成一个类,我们来对照一下啊,这一条代码 类当中是有两个方法啊,对吧?这是一个方法,这是两个第二个方法,对吧?那么来看一下第二第一个方法啊,第一个方法的话其实没多少代码,其实就是赛特啊,不就是赛特吧?赛特 fui 什么意思啊?我们来通过音中音来翻译一下,大家看一下,翻译一下就是, 呃,安装 ui 对不对?是不是?安装 ui 就这么简单吗?那么 ctrl 不就是安装啊,然后 ui 就是界面,对不对?安装 ui 界面那么传入的是一个形式参数,这个形式参数是行餐,是我们是一个缝的一个行餐,嗯,至于 行餐时餐,我们在以前的这个基础课程当中已经跟大家讲过了啊,就要行驶参数这个地方进来都是一个行驶参数啊,行这个行驶参数的话呢,我们这个地方其实是一个,嗯, 这个地方其实是一个,是一个实力化的一个对象啊,这个实力化的一个对象实际上就是一个窗体,对吧?实际上是一个窗体啊,是一个位置这样一个窗体传进来啊,位置这样一个床体传进来,传进来之后我们就可以位置的是什么呢?位置就是这样一个东西啊,就是我们之前的这样一个, 之前的一个创题,对吧?之前就是一个 ui 的之前的一个 q v j t 嘛,对吧? q v j 啊, q v j 的这样一个窗题,我们可以对他进行传录啊,对他进行传录,那么我们这里的话呢?呃,传录的时候我们待会要调用啊,传录成之后才可以调用嘛,对吧?然后我们来把这个地方 set 什么呢? object 啊?内 啊,这个其实就是我们之前的这个名称凤,对吧?哦,不就,那是什么意思啊?对象的名称是凤,这,这个我们有所对应的,我们来看一下啊,对应过来我们的这个地方,我们重新来打开这个工具, external tour 啊, p y 啊,这个这面 q t 第三个,然后我们来,我们通过这个,此时我们不要创建啊,我们通过打开,点击打开, 然后打开这个幺九二 t 四零零三啊, ok, 我们打开之后,我们发现啊,这个地方 object the name 是什么啊?这个目标的名称,也就是这个 form 的名称,这个 form 的名称,对吧?这个 form 的名称是什么呢?就是这个他的这个窗 form, 其实就是窗体的意思啊。 object name 其实就是指这个窗体的名称,就是叫做凤啊, fo 啊, m 啊,我们给他取了个名字叫做凤啊,对吧?那么这个呢?我们其实 啊,这个我们叫做什么呢?我们来写一笔吧啊? oppoject 的内容啊,窗体对象的名称,表示窗体对象的名称, 好,我们来写这个地方,这个地方,呃,这是这个属性,对吧?这属这个属性啊,我们再换一个属性啊, object name, object name, object name, 好,这个对吧? 这有二不留的内容属性,这个属性呢,就是表示什么呢?表示窗体对象的名称, 窗体对象的名称啊,窗体对象的名称,那么其实就很简单,我们就写到这行就行了啊,表示窗体对象的名称,因为为什么呢?这个窗体对象其实就是指这个, 嗯, q 位置的一个实力化对象啊,注意,窗体对象其实就是指啊, q 位置词 w, w, i, d, g, e, t 啊的实力化对象的 实力化对象啊,实力化对象,某一个实力化对象,那么这个实力化对象我们可以给他取一个名称,这个名称其实就是这个 form 的名称,对吧?这个 form 的名称, ok, 我们继续看下去啊,来,继续来对应过来,我们来看到他生成的这个 resides reset, 通过这个 resets 是什么意思呢?其实就是 这个,其实就是一个,嗯,而这个 set object, 我们 set object, 其实我们来看到啊,这个是 qt five 当中的一个设置对象的名称, 对啊,设置,对啊,没错,我们这这个地方还进行了一点点的补充啊,一点点的补充。 set object, 那么他是对应到对象的设计师界面,对吧?他是对应到拍神 代码中设置窗体的啊,设置窗体方法啊,设置窗体名称的方法啊,方法 ok, 哪个呢?就是指这个,对吧? 双,这是双体名称的方法,这个 set of 就是内啊啊, ok, 那么我们来再看到啊,这个地方上面,呃,这个 recise, recise 其实是指,就是指什么呢? recise 啊,那默认情况下他这个地方,呃,因为是左上角嘛, 所以他就默认情况就是零零了啊,可能就是零零了,那么我们瑞塞斯其实是对应就是从啊重新调整大小,对吧?调整窗底的大小啊,我们这个地方我们来把这个函数单独来列一下啊,瑞塞斯,那这瑞塞斯函数是什么意思呢?其实就是指啊作用 重新啊调整窗体大小啊,窗体的大小,大小 大小,那么这个大小其实很简单,我们上节课给大家有解释过,但是没有具体的写下来啊,我们这次给他彻底的写下来啊,那么他的一个有两个参数啊, 有两个参数,对吧?啊?第一个参数,我们通过这个四百对应过来,对应过来,我们看到这个地方其实就是什么?就是他的一个宽度,对不对?三百就 高度,对吧?哎,所以他的第一个参数其实就是第一个参数表示宽度值,宽度值啊,第二个参数表示高度值,对不对?高度值,那么举例其实就是指这样的一条 啊,对吧?举例我们来看一下啊,就是放点 recess, ok, 放点 recess, 这个是应该是一个小写啊,对啊,大家要注意,他是有大小写之分的啊,放点 recess 啊, ok, 那么我们来看一下啊,我们也可以通过这个, 呃,通过点击 ctrl 键,然后再点击鼠标左键可以点进去,哎,大家可以看到啊,这里面设置他宽高,对不对?他有这个啊,他有这个这个地方啊,这个地方是属于在哪里呢?我们可以看一下啊,在, 在我们的,在我们的这个很里面的一个方法啊,很里面的一个方法。呃,这我们应该是要到这个 qt p y q t 五这个这个地方。 p y q t 五的这一个方法里面啊,这里方法太多了,一下子也很难去找到,去定位到啊,那所以还是大家一定要记一下,对不对? p y q t 五的这个核心里面啊,对吧? p y q t 五的这个核心里面去设置它的一个宽高, 要找到的是要要对应到啊,这应该是这边啊,应该是这一边,大家看一下啊,这是上面的绘图的一个东西,对不对? graphic 啊,我们这个地方应该是 q veget 啊,设置它的一个宽高啊,我们来看一下 wedges, 应该是这一个方法啊,这就对了啊,对吧?大家来看一看到啊,这个 wedges 的它的一个所在的,它的所在 的一个。呃呃,一个一个他的一个拍摄代码所在的 页面啊,他是在哪里啊?他这个文件到底在哪里啊?大家看到在这个用户文件下面的,对不对?在这个用户文件下面啊,大家可以又通过这个地方右键,然后来找到秀音 x pro 啊,这个里面应该有很多啊,大家看到吗?啊?他都是一个 q t 的 p a q t q t five, 大家看到吗?这 q t q t five 我们安装在这里面啊, p y q t 五是不是安装在这里啊?当前的用户文件下下面啊?哎,我们我们所有的 所有的通过这个 py 管道啊,下载下来这个文件就安装在这个地方,对不对?然后我们通过这个地方,我们就找到了有一些其他的一些空间啊,对吧? qtfi 以及 qtv, 这次有哪些呢?有很多,这里面还有 button 啊,一些绘图的 slide go 啊啊,一些一些拉条啊啊,一些按按钮啊,一些带 lug 啊,一些这个 come on botton 啊, line 啊啊, file 啊等等,对吧?我们我们这个地方有很多 ktv 这词,也是这里啊, 包括我们这个里面有一个 risss, 对不对?通过这个 q 位置, q 位置最基础的一个代码啊, 最基础的一个负累啊,这个负累里面就是有这个地方,对吧?就是有这个瑞塞子,他的一个宽高啊,宽高。好了, 那么我们来看一下啊,这个地方我们是不是已经看到了?已经看到了,我们点进去刚刚已经看到了啊,应该大家不要找错啊,找的话应该找这个 pyqt 五的一个位置,对不对? pyqt 五的一个位置啊,毕竟我看看,我们看看这里面他有两个参数,这个也可以通过 q size 的这个 仓鼠来进行设置,对吧?啊?我们后面啊,再逐渐来使用这个东西啊, 好的,那么我们再接下去看下一条啊,再给接下去看下一条,这个下一条呢?我们实际上就是一个 sf 点调用了他,对不对? sf 点啊?啊?这个 retranse retranslate 什么意思啊? re translate, 我们可以把它来查词查一下啊, re translate 啊, 重新设置什么东西,对不对?圈子来的,是不是一个翻译啊?啊?是不是一个翻译的意思啊,对吧?我们来看一下啊。 呃,百度来看一下。瑞圈斯莱特是什么意思呢?啊?圈斯莱特就是翻译嘛,对不对?把什么或者把什么转变为什么啊?瑞圈斯莱特啊,就是重新翻译一下或者重新转变一下这个 ui, 然后呢对他来进行这个传入的这个对象啊,传入的对象哎。呃然后来来调用这一块啊,重新重置一下,对不对?重置一下。重置他成什么呢?重置他成这个 qt cool 啊,调用一个 qt cool。 qt cool 的话呢?我们也是在这也是有的啊,对不对? 我们是不是在我们刚刚的调用的这个文件啊?我们我们其实已经找到过了,我们不再去找了,刚刚已经找到这个 qq 号的一个文件夹了,对不对?啊?我们看到这个 qq 号下面有一个 q 号 啊, q call, application 还 translate。 那这个地方,呃这是一个,我们直接可以点点过来了啊这个这个地方应该是唯一只有一个我们我们这样子的唯一只有一个的话我们可以直接找到他了,对吧?可以直接找到他了。 qt call 对吧? qt call 这是一个文件夹,单 度的一个文件夹,里面有很多很多的一个核心的量的一些东西,对不对?哎可以有一些什么,一些系统的一些时间啊,一些系统的一些酷啊,一些操作系统的文件啊, 等等啊,非常重要的一些东西啊。长安没有对吧?嗯,大家可以通过呃这一个拍神代码的一个,呃他的一个,嗯嗯,就是就是这么一个 api 吧,对吧?差不多是一个 api 就可以看到了他的一个作用啊就可以。 ok 那么这个呢其实他最基础的我们可以看一下啊,这个类他是基础继承于哪里呢?他其实继承这些东西啊,都是继承于这个 oppo 句子啊,都是继承于这个 oppo 句子啊,对吧? ober 这个 oppo 句子才是最最根 根本的一个东西啊。啊,这是 q t 里面的东西啊,对吧?那么我们不多讲了啊,这是我们直接调用这个 q t five q t five 这个库就可以了,对吧? 好,我们这个地方呢, qt call 啊, qt application 对不对?呃是一个,最后再返回是一个转换过来的一个对象啊,将我们转换过来这个对象呢?我们可以设置 窗体的标题啊,这是窗体的标题啊。什么什么默认情况他是一个缝对不对啊?默认情况他是一个缝啊。 哦 ok, 这个地方有个 set set window title 啊,上一节课我们是不是用了 stat window title 啊,来设置我们窗帘的标题啊?实际上我们这个地方呢就默认情况已经给他设置过了啊,通过这个我们我们设计界面的时候就已经设置过了他的一个界面啊,对吧?我们可以把它变成。呃 我们待会进行转换啊,转换过程之后我们还可以进行设置,我们来进行观看好了啊。 ok, 我们下面的话呢,还有最后一条啊, qt mate mate qt 扣,然后呢? q mate 什么呢? object, 然后有一个 connect 啊? connect mate object 有个 connect。 什么有个槽, 死老子槽连接我们槽的名称,这个槽的槽是什么槽呢?就是指我们这个通过我们这个 qt 的一个核心代码去 呃, qt 当中最为关键的就是一个信号语槽啊,大家先进行一个了解吧,但是我相信,呃没有用过这个 qt 写代码的同学可能是可能会听不太懂啊,但是没有关系啊, 但是你记住有个信号槽的一个关系就行了,实际上就是一个 qt 的一个就相当于是 捕获 qt 当中的某个事件啊,事件其实信信号,我们其实就是一个事件,点击单机事件其实就是某个信号啊,可以这么去理解,嗯,好,那么我们简单的在后面加一条啊, qt 当中的理解啊, 啊 q t 啊中信号的理解,那么哎,比如说什么呢?比如说,呃这个单机事件对吧?单机事件啊,那个,呃或者说是这个某个 某个什么信号呢?比如说是超时超时信号啊,等啊,都是等啊,都是这个 q t 中 的啊, cqt 中的型号啊,可以,实际上啊,说到底其实就是某个说到底啊,说到底其实发生发生了某个事件说到底啊,说到 啊其实就就是界面上上面发生了某个事件啊,发生了某个事件 某个事件或者是某个信号啊事件可能是理解起来会比较的单一啊,其实其实或者发生了某个 信号会比较的准确啊,信号会比较准确。 ok, 那么我们我们来直接来生成自己再来生成一下啊,我们这一条啊, ok, 我们来执行 ljy 零零三 三自己来写一条幺 j y 零零零零 l j y 零零三吧啊零零三, ok, 我们来 现在我们来调用一下这个代码,对吧?调用来调用一下这个代码,再来调你一遍啊,以前已经调用过了,对吧?我们自己来写一下看看啊。 input 什么呢?首先 input 这个 sis 啊,是之前是不是已经给大家讲过啦?另外一个 input 什么呢? input 我们可以调用一下这个, 我们我们这一次可以传入这个微决策啊,不一定要传入这个闷微决策,对不对啊?我们这次此时传入这个微决策,哎,这个微决策的话,我们在什么 p y q t 五这里面的微决策里面就可以了,对不对啊?我们来 啊,这个是酷酷的名称 from 酷的名称,然后呢是一个音炮的导入,我们 只要导入这个啊, q apply k 群啊, q apply k 群以及这个 q 位置就可以了啊, q 位置,那么我们此时这两个,这两个库我们导入进来就可以了啊, 对吧?此事要倒入库啊,我们写的时候呢,嗯,程序的思想啊,待会还是要给大家再明确一下啊。 那么首先我们倒入库之后啊,我们来有一个 f 一句,对不对?这个 f 一句我们其实是可以不写的,我们之前是不是有给大家写过这个 f 一句啊?那这个 f 一句我们呃 name 在判断的时候呢,就是指本身的这一个, 就本身这一个文件在写入的时候模拟了一个路口,其实这个路口我们知道啊,拍伞,我们在写的时候,这个程序啊,我们就像批处理一样,一条条代码 执行下来的,对不对?实际上我们可以只要把这个程序作为一个,这个文件作为一个主路口的话,我们其实就也不需要写这个一辅一句,对吧?也可以不需要写这个一辅一句啊,当然写了这个一辅一句的好处呢,其实就是我们可以在其他代码在电路的时候呢我们可以呃 判断对吧可以不写就是可以不会创业腐具当中没人当中的这个代码可以不会不会被调用,哎这么一个好处啊,当然我们其实可以不写了对不对哦那么我们这里面先开始呃就直接布写好了,我们其实这个地方其实可以去布写的啊, 我们来看一下直接开始来写这个 q apply k 讯来首先来调一下啊 q apply k 讯 app 对不对啊?这还是要掉的对吧? q apply k 讯啊那么我们传录是什么呢?传录的是一个呃拍摄当中的一个参数 argb 对吧这是这还是非常重要的啊这个地方是什么呢? 首先这里面是我们这个导入的是系统类拍摄的系统类 啊,我们一条再解释一下吧啊导入啊拍摄系统类啊系统内裤 ok 第二条我们就是导入导入 pyqt 五类啊用到的内裤啊内裤一个是啊 oppolik 型 啊啊 placation 应用程序类对不对?程序类啊核心类啊,那么还有一个呢就是空间的之类 q 五 v 九 啊空间的之类啊之类对吧啊大家应该这里这几条应该都要知道的啊。好我们来再继续看啊。呃 plak 选我们现在就是把这个应用程序类进行实力化。 好我们一条条来稍微解释一下,因为呃有的小伙伴可能半路插进来啊,就是说是听这样一个程序啊,如果说你有之前的这一个,嗯 呃从我们的零基础拍摄教程啊老刘的零基础拍摄教程从第一期到一百二十五期的一个经验的话呢啊,学习之后你就可以怎么样呢?就拥有了这样一个啊,就是累的一个概念啊, 你就可以知道啊,我们这个地方你要进行实力化一个类,对不对?这个地方其实就是一个类库导入的是一个类啊,一个库呢,实际上就是一个类 class, 那么这个地方呢?实际上就是一个,呃, 这个基地其实就是一个实力化一个类,对吧?实力化一个类啊啊?通过构造函数,构造函数传入啊,传入这个 python 的参数, python 的应用参数 啊,有有拍成的用餐数啊,系统用餐数,对吧? a l g v, 我们可以点开来看一下啊, 这个地方是一个空的。 real 什么呢?它是一个 real value, 真的一个值,对吧? list 啊,有一些什么牌子,那些其他的一些东西啊, 这样一些东西会被装载进来的一些东西,我们就可以通过这个参数来进行传入啊,盘成的一些这个参数进行传入,那么有什么就传入什么吗?对吧?我们刚我们到时候可以看看到底是有什么东西,我们可以 打印进来,打印出来,对吧?可以也可以打印出来吗?他是一个全局变量啊,大家注意啊,当然是吧,他这个地方是一个全局变量啊,所以也就是说在后面也有可能进行传入的啊,这样一个参数的一个值,我们可以进行打印 啊, print 进行打印,对吧?拍摄一旦进行载入之后呢,我们就可以进行打印,此时我们其实就可以先看一下了啊,通过右键与 run 啊,可以看看什么都没有,对吧?有一个什么呢?他就有一个这样一个文件的名称被打印出来了,对吧? 他是一个什么?他这是一个列表啊,这是一个列表传入的第一个文件的名称,也就说是 a 九二零零三啊,就是把自己文件的名称传进来,这个文件的名称传进来,传进了什么呢?传进来之后就到这个 q opla k 群当中,我们就去构造了一个把这个文件,对吧? 把这个自己的这个文件名称自己给给传进来了啊?一个一个列表传进来之后,他可能就会去检测到,对吧?检测到 q aplux 就会去检测到,检测到这个列表,对吧?这个列表这个列表他可能会在初始化的时候进行应用啊,进行应用初始化的时候我们就要载入进来,对不对? 好了,那么这是我们打印的一个拍摄的一个参数,到底是什么,对吧?这个时候我们参数是 一个就就一个文件的名称啊,有一个文件的名称,我们拍摄直行过来的时候就会有的啊,就会有的。那么这个地方呢,我们其实就是实力化一个类啊,实力化一个类,然后呢传入我们的拍摄的应用参数,其实就是这个参拍摄的应用参数其实就是一个拍摄的文件名称,对吧? 啊?这里啊打印打印出啊,这个当前文件名称的啊,列表啊,包含当前文件名称的, 包含当前文件名称所在路径名称。呃,应该是具体路径当前文件 具体路径的名称,对吧?具体绝对路径?应该是啊,绝对路径,所谓绝对路径啊,就是包含从根目路开始啊,然后到文件的名称这里啊,我们绝对路径的名称啊,绝对路径, 我们把这个稍微写一笔啊,稍微写一笔,这个绝对路径,绝对路径, 那么路径说明啊,这有两个,一个叫做绝对路径的概念,一个叫做相对路径的概念啊,大家要明白的,绝对路径,我们一般来说从从根目录开始到文件的名称啊,从根目录,根目录开始的路径啊,路径 详细路径,对吧?详细路径啊,那么还有个是叫做相对路径啊,相对路径呢,其实就是相相对于某个文件 目录啊,目录的路径啊,相对于某个文件目录的路径啊,不会出现详细的这个路径的名称,对吧? ok, 相对路径,我们往往啊,通过一些啊, 相对路径,路径往往有一些代表性的东西啊,往往有一些符号代表,符号代表啊,代表。 ok, 那么什么呢?我们是点这个点啊,点 点表示当前路径啊,当前路径点点表示什么呢?这个叫是点点啊,表示上一层,上一层 路径啊,上一层路径那点点杠,点点杠啊,那就是上一层的上一层路径,对吧?哎,好,我们往往啊,就用这两个,哎,表示的比较的多啊,表示的比较多。好了,那么我们接下去呢,有了这个应用程序之后 后啊,我们最后就是为了程序退,程序退出而使用的,对吧?程序退出而使用程序退出的话,我们是有一个监控的啊,通过 six 的一个,呃呃,退出 excite 啊,退出之前我们监控的什么呢?监控的是 app 的 excite, 这个时候呢,这个地方其实就是监控程序的界面,监控程序退出的时候,对吧?监控,我们这个进程退出, 退出之后呢,我们会有一个执行一个退出的代码啊,实际上这个地方退出的是一个,执行的是一个,返回的是一个零,对不对?返回的是一个零,也就是说监控啊,啊?监控这个, 呃,这个地方呢,其实就是一个死循环啊,此时这里其实是一个死循环啊,死循环返回的一个界面啊。嗯,这个表示 这个界面程序界面监听事件, 今天啊,这个上次,上次好像给大家记过了啊,记过了啊,那我们再记一笔啊,今天事件的开启啊,是一个死循环 啊,是因为是一个记起来了吗?死循环,这是一个死循环啊,一直不断的去监听我们事件的界面,对吧?我们来看一下啊,我们现在这个程序有吗?现在是什么都没有吧?应该,对吧?我们右肩来看一下啊, 哎,还是什么都没有?他就是一个进程在这里,对吧?他就是表示一个进程在这里啊,现在我们把这个观看掉啊,所以我们这个地方其实是什么都没有啊,就一个进程,对吧?也没啥用啊。那我们界面是不是要搞一个啊?界面我们来搞一个看一下。界面搞一个我们界面的话来自于我们 之前的那个这个东西,对吧?是不是来自于这里啊?四百、三百啊什么的,对吧?那么我们这里呢?呃,我们来把这个东西进行实力化啊,把它进行实力化,导入这个,导入这个什么 uiphone, 对不对啊?首先把这个界面的 把,这个应该是 test ljytest 零零三要倒进来这个模块啊,这个模块首先要倒进来啊,来,再来导入一个啊,再来导入一个 input 啊, ljy, ts 零零三,对吧? ts 零零三, ok, 这个地方我们就是导入模块啊,导入叫做导导入模块,对吧?导入这个这什么的模块呢?导入类 的,呃,生成界面的类的模块啊,生成界面的类的模块,对吧? ok, 那么我们导入这个类的模块之后有什么用啊?什么用呢?我们就是要现在开始是就可以调用了吗?对不对?调用这个模块啊,调用这个模块的什么呢?他的一个 uifo, 对不对?他的 ui, 哎,大小写是有区分的啊。 uifo, 我们这个类啊,我们将类进行实力化, 将类进行实力化缝,对不对?他是不是一个缝吗?我们就用缝好了啊,就一个缝。呃,实力化,我们这个类 实力化生成生,生成的界面的类啊,这是一个实力化生成的界面的类,那么我们将实力化生成的界面这个类的话呢?我们可以进行一定的配置, 或者是啊通过这个什么呢?通过这个,呃, set, set up ui, 对不对?通过这个地方我们传入这个一个,把这个类呢传入到某个界面上,那通过他传入到哪一个界面上呢?我们就要 搞一个界面出来,那搞一个界面是哪一个界面啊?就是一个通过 q 啊, q 位置词啊,就可以作为一个 啊,窗体的一个界面,对吧?窗体的一个界面,我们就直接来一个 qv 的啊,那大家其实记住这一个步骤啊,这其实就是一个程序生存的一个思想啊。 好,那么我们来这个前面是不是要补一个啊?他是不是没有啊?没有我们就要搞一个 q v j 词, ok, 那么我们就用 w 来表 w 来表示 v j 词好了啊,呃, ok, 然后呢是一个 q v j 词,对不对? q v j 词啊?好,我们就直接实力画一个界面 写一下实力化啊,实力化,实力化,界界面之类啊界面之类, 这也可以表示一个实力化的一个界面积累啊,啊,对吧?界面的一个积累位置成一个空间的积累,我们把它传入进来就传入到我们他就行了啊,好,传入到他之后呢?我们就是,呃,是不是通过他进行赛特阿普拉? 现在阿布之后啊,就是实际上就已经把我们的这个界面啊,就已经啊 ok 了啊,就已经 ok 了。然后呢就是不是装载到这里面去了? 我们看看啊, ctf 装载到哪里呢?是不是装载到这个啊? fom 啊?装载到这个 fom 这里去了啊?装载到我们实力化的这个 fom 里面去了啊? fom 点什么?什么?是不是?哎?装载进去之后我们是不是就可以将这个啊?他就显显示出来了?显示出来了, 我们来看一下啊,有没有东西啊?是不是如此啊?哎,是不是四百三百啊?但是呢他这个地方呃出来的时候呢,他默认情况下是给你生成的是 中间,是不是?这中间的是不是在中间的?哎?这个中间的这个位置啊,实际上是呃,就生成之后因为我们默认情况下没有配置的,所以默认情况下之前看到的是左上角的零零,对不对?左上角的零零,那所以 但是他在零零的时候呢?他在生成的时候他并没有零零,对不对?并没有零零,那么我们也可以,比如说在这个地方我们给他生成写一个零零啊 form 啊,比如说我们自己写一个零零,自己可以补嘛,对吧?凤点木啊,通过木 呃木啊填放点木的方式啊,比如说是木到零零的这个 位置啊。好,我们来自己再看一下右键绕,你看是不是跑到窗题左上角的零零啦,哎窗题左上角的零零啦,哎。这个地方呢,其实我们使用了一个木方法来 对他的位置啊进行调整啊,我们对他来这个地方木方法啊木方法来做一个补充啊木方法来补充木方法的话呢,我们其实 作用是什么呢?调整啊,调整这个窗体的位置啊调整窗体的位置啊。那么第一个参数表示这个水平方向 水平方向的位置啊,那么第二个参数表示垂直方向的垂直方向的位置啊。这动 是一个用餐用。用什么用像素来表示的啊?母母方法啊,我们刚刚举例,我们可以把这个例子拿过来,对吧?我们修改了我们生成过来的这个类啊,到零零的这个位置啊,因为我们默认我们零零那个位置啊,其实在生成的时候他就没有给你拿进去的啊,对不对? 哎,因为他认为是零零,他可能认为你就是跑到中心位置的啊,啊对吧?举例,使用举例, 使用举例, ok, 我们就是放点,放点什么木?好,那么我们通过这样一个解析啊,我们上一节课啊,默认情况下我们最早的时候我们是不是用的是这个没有温度啊, 而没有 window 的话,我们知道的啊,它继承的是这个啊, q v 九七,对不对?我们看到翻到最上面啊,翻到最上面之后,我们发现它是继 现在是 q 微酒厂,所以啊,我们就是此时我们自己在写的时候,我们其实也可以时间是简单一点,直接写这个,直接写这个叫做什么微酒的就行了,对吧?是不是啊,直接写这个微酒的这个类 啊,直接写这个 vigo 的这个这个鸡肋就可以了啊,对吧?这是一种最为简单的一种写法,那么大家呢,也可以去尝试一下,也可以不使不采用这个,呃, 不采用这个,这个夜府渔具的方式在这里可以用,当然最好的还是采用这个夜府啊,夜府渔具这个通过内来模拟我们这个函数的一个文件的入口,入口啊,这样会显得我们的这个代码会比较 有水平吧,哈哈,会比较的,呃,正规一点,对吧?那如果正规一点,那么我们可以把这上面还有加个 fme 啊, fme, 那么这样子也可以使得我们这个类啊,可以在多方面进行使用啊,也比如说可以导入到其他的类当中,把这样一个窗体呢单独去进行调用啊,单独去进行调用,那这个地方我简单的可以给大家来写一下啊,这地方是使用窗体,窗体显示 啊,显示函显示,所以我们这个秀呢,是其实是调用窗体显示函数,对吧?嗯,秀秀函数, p y q t 五的秀函数是窗体的显示功能啊,窗体的显示功能使得窗体显示出来啊,那么这个呢,实际上是它自动生成的,对吧?这其实就是一 个什么将啊将生成的生成,呃的这个,呃窗体控件及配置什么载入到,载入到这个 w, 也就说是威瑞特这个空间对象, 空间对象中,那么我们将这个空间对象载入进去之后呢,就相当于是这个配置进去,对吧?然后我们就可以显示出来了啊,最后我们就是监控我们这个窗体,窗体这个 app 的对象就可以了啊, 也就是监控我们的这个,呃,我们这个这个叫做什么?呃进程,对吧?监控我们的进程,然后监控监控进程的事件一旦发生什么啊,那我们就进行钓鱼就行了啊。好了,那么我们今天的话呢,主要是给大家呢做了一个非常详细的 一个对照啊,是什么的对照呢? pyqt 五的这个代码,以及对我们的这个啊, qt 点三个啊的一个设计,对吧?对照我们这个设计啊,做了一个详细的讲解,这个文件的一个详细的讲解,那么嗯,大家呢也 自己要好好的去体会一下啊,你自己比如说再加一个东西或者减一个东西,对吧?哎,自己可以去感感受一下这一个过程。好,那么我们最后来进行一次总进行一个总结啊,我们学到什么呢?呃,首先要掌握这个,呃, 拍死啊,对吧? qt 点三个 dsigne 啊,点 qt 点三个。 第三个设计界面与什么呢?与这个我们的 pyu ic 啊,转换后文件代码的对应关系啊,对应关系,这个是非常重要的啊。第二个我们就是要掌握 pyqt 五的啊, 五中基本啊界面的界面,界面中常用函数的基本用法啊用法。那么第三个我们就是要掌握这个什么呢?掌握这个,呃,应该来说是有一点非常重要啊,如何 如何?呃,调用调用生成界面的啊,思想,思想对吧?如何调用生成界面的?这个思想实际上就是应该是,呃, 则啊,实则是什么呢?是 pyqt 五,哎。实则是如何使用 pyqt 五 纯代码啊,纯代码写这个,呃, gui 界面的关键 对吧?就这几点啊。好了,那么本期的教程呢?就是这些啊,如果说你感觉我的教材对你有所帮助的话呢,欢迎继续订阅关注,为我点赞啊。 呃,我们在这个百度的贴吧当中有一个呃呃,贴吧的名称叫做边城创造城市啊,大家如果说呃有什么问题的话呢,欢迎在这个贴吧当中进行留言。好了,我们的啊教程就这些, 哎。刘军编程编程创造城市,欢迎小宝们继续关注我们,下期再见!拜拜!

哈喽,大家好,今天给大家分享拍摄可视化分析的分布地图,那这里呢需要用到 p y h 这个包,也就是我们常说的酷, ok, 那我们来先看一下我们要处理的一个数据, 首先我们在拍摄里面,我们通过潘大师,然后把我们对应的这个赛肯的好斯对他啊,把这个数据给导进来啊,导进来完之后呢,我们来看一下这个数据的基本情况,那我们通过 printer 啊,对他啊点 heads, 那也就是说可以通过 head 这个函数,然后我们把我们对应的这个数据的基本情况给查看一下,可以我们来运行一下, 那这里已经出来了一些实际的效果,我们可以看到啊,这个害的函数呢,他这里其实是有个参参数的啊,参数如果你默认不写的话,他就默认是打印出来整个数据有效数据的前五行,那假设你写六的话,他就有效数据的前六行,所以我们通常不用写就 ok 了,因为前五行已经足够够我们看了解这个数 遇到基本情况了,那这里呢并不代表这个数据只有五行啊,它通常只显示前五行。然后如果呃我们可以看一下这个小区,然后这个数据呢,它是大概有这些数据啊,没有,大概有十列吧,然后没一点不同的信息。 今天呢给大家主要呃分享,我们怎么去通过我们对整个这个市区这一列进行分组,那分完组之后呢,我们再统计啊,比如说属于朝阳区的有多少个小区啊?属于平谷区的有多少小区,我们通过这个分组 把这些呃小区的数据拿到之后呢,再把它分布在地图上,那一个北京市的地图的形式展现出来,每个小区分布每个市区每个地区,然后大概有多少小区这样一个分布图。 ok, 那我们呢去掉正式黄金会在这里呢,我给大家也是一样啊,首先呢我们导入对应的一些包,那这里呢就是比较惊天的一个重点,就是我们的刚刚贴的皮包一圈,这个含这个包,那通过这个包呢,我们要导入一些他对应的地图,那这个是比较重要的,我们要 一定要导入这个地图,这不现实,那也就是我们今天要呈现的这一块。那首先我们可以我们看一下啊,完了之后呢,第一步也是一样,我们先导入这个把我们的数据给读回来 啊,通过标志 csv 这个函数把我们对应的一个对塔给读会,读完了之后呢,我们就开始进行分组了,那也是狗肉拜这个函数呢,对市区进行分组,所以呢这里一定要把我们这个市区这个店给他已经标注,告诉他我们要通过呃狗肉拜的函数对市区,我们刚刚提到那一个列进行分组, 除了分组之后呢,我们还需要进行技术,所以呢我们在这个基础上再进行抗策,也是需的基础上再进行对小区这一类进行技术,也就是说不同的区域啊,不同的小区有多少个? ok, 完了之后呢,我们再获取两个值,一个就是我们的地区,一个就是值啊,这两个值呢就是未来我们要写到我们地图里面的两个参数。 ok, 我们来定义一下地图,那首先呢通过迈普的函数呢,我们首先呢定一定一下我们这个地图的一个 宽度和它的高度,就是你想有呃多大的一个尺寸去呈现它。那第二个呢,就是我们把刚刚这两个值一个列表的形式,然后逐渐的逐个去写入我们的北京这个地图,那这里大家注意一下,如果你因为我们这个是北京市的数据吗?所以这里是北京,如果呢你比如说你是郑州或者是广州,那这里就要相应的去改掉它。 ok, 那完了之后呢,我们这里是给他他一个一个标题啊,这里就是说告诉我们这个图表那是一个什么样的标题, ok, 那这里呢下一步就比较重要了,哎,告诉大家这里呢需要我们给定他的一个图例,那在设定图例的时候呢,一定要注意我们的最大值,要根据我们的实际数据来设定, 假设我们的的数据呢,它里面的最大值是两千八百多,那我们最大值可以取三千,那假设你如果两千八百多的数据,你最大值,你的图率最大值需要取到了一千,那可能在在你的图表呈现出来的结果,就可能他的分区颜色的分区就可能没那么明显,因为你可能 中间在很大一部分的程序都合合并在一起,所以呢我们要根据我们的实际数据去设定它。 ok, 那我们设定完了之后呢,我们再看啊,最后呢我们通过人道的函数把我们的这个呃城市分布这个去 tm 的这个文件给生成,那这就是一个去 tm 的文件,一个我们的对应的一个分布图,那生成完之后呢,我们再通过 os 啊 sister 我们这个函数 再把我们城市地图直接打开,那这也是方便给大家展示看一下。 ok, 那这样一来的话,我们的函数,我们所有的代码都已经写完了啊,这完了之后呢,我们来运行一下, 稍等一下。 ok, 那啊 os 已经自动帮我们把这个呃系统给打开了,那这里就是我们刚刚所制作这个 htm 这个文件, 这里呢,所以可以看到我们通过呃最大土力的有三千去设定,那么可以看到有不同颜色啊,代表不同的它的一个密度,也就是说一月中间越红的,它的值越高啊,一座铜越蓝的,那它值越低,所以我们可以看 看到在中间这些区域呢,这些小区,那比如说这种朝阳区有两千九百多个,那昌平区两千八百多个小区,那如果到边上什么蜜月,那苹果啊,也就是几十来个,十来个。 ok, 那这样一个基本的情况我们就可以画出来了,可以针对这个图再做一些简单的分析,那呈现出来一些一些分析效果,分析的一些结论。 ok, ok, 那基本情况就这些,我们今天的分享就到这里,我们下期再见。