粉丝2.9万获赞15.2万

大家好,欢迎来到鸿飞软件集,今天介绍 qt 的 属性动画在 qt 知识的第十六部分,该部分内容介绍的是 crop 提 animation 属性动画,就是可以对 vg 的 属性值,比如位置和宽、高、透明度、颜色等进行数值的变化, 可以设置出变化的时间用时这样的当属性在进行变化时,外形的呈现给人的感觉就是图形在进行动画的变化,我们便易导出的项目例子, 这是设置属性动画的源码,我们看运行成功的界面,点击第一个大小位置属性动画,第二个长度属性变化,第三个颜色属性变化第四个位置属性变化第五个透明度属性变化 第六个大小属性变化。以上就是这个 crop 题 and mason 属性动画设置的介绍内容,欢迎关注此账号,分享更多使用技术。若想获取 qt 开发手册,参看视频下方信息,或查看主页签名介绍,谢谢您的观看,拜拜!

各位同学好,欢迎大家来到用 qt 六创建真由 i 程序微课堂,这节课主要介绍常用的事件处理函数。上一节课中,我们介绍了一维函数的用法。 在实际编程中,开发者可通过重写一维函数的方法来捕获并处理事件。 如果开发者不重写疑问的函数,则事件会传递到该事件的默认处理函数中。开发者可以通过重写该事件的默认处理函数来处理该事件。 在 q t 六中,窗口或控件的事件处理函数如下表所示。 由于 qt 六中窗口或控件的事件处理函数比较多,这张表格只展示了其中的一部分。如果各位同学要查看每一种窗口或控件的事件处理函数,可查看书中的介绍。 大家可以看一下这张表格,其中 action event 表示当增加、插入、删除 cue action 时调用该函数。其中 change event 表示状态发生改变时调用该函数。 其中 child event 表示容器控件中添加或移除子控件时,调用该函数。 在 qt 六中,每一种窗口或控件都有自己的事件处理函数, 窗口或控件的处理函数如下表所示。这张表格只展示了 q widget、 q mail window、 q dialog、 q label 类创建的窗口或控件的事件处理函数。 如果各位同学要查看每一种窗口或控件的事件处理函数,则查看书中的介绍。 大家可以看一下这张表格,其中 queue 类创建的窗口或控件的处理函数包括, event, action, event, change, event, close, event 等等。 其中 cue 门 window 类创建的窗口或控件的处理函数包括, event context, menu event。 其中 cue dialog 类创建的窗口或控件的处理函数包括, event close, event context, menu, event, event filter, key price, event resize, event 竖 event。 其中 cue label label 创建的窗口或控件的事件处理函数包括, event change, event context, menu, event, focus in event 等等。 下面我们做一个例题演示实践一下。创建一个窗口,该窗口包含一个标签控件,当滚动滑轮时,标签显示提示信息,我们演示实践一下。 首先我们打开 qt creator, 然后我们单机创建项目。在弹出的对话框中,我们选择 qt widgets application 模板,然后单机 enter 键。在这个对话框中,我们将创建的项目命名为 demo 三, 并将该项目保存在 d 盘的 tab 十文件夹下,然后单机下一步按钮, 然后点击下一步按钮。在这个对话框中,我们选择窗口类的 g 类为 q 微里的,并取消勾选这个复选框,这表明我们创建的项目中没有 ui 文件。然后点击下一步按钮,然后点击下一步按钮, 然后点击下一步按钮,然后点击完成按钮。在这个窗口的底部有一个提示信息,这个提示信息是更新提示信息,我们关闭这个提示信息。 在这个项目的文件目录中,我们首先展开头文件,然后双击打开这个窗口类的头文件编辑点 h, 然后我们在这个窗口类的头文件中编写代码。首先我们要包含 q h box layout 类, 然后我们包含 q font 类, 然后我们包含 q will event 类, 然后我们包含 q string 类。 在这个窗口类的定义中,我们使用 q h box layout 类创建一个对象指向指针, 我们创建的是私有类型的, 我们创建的这个对象指向的名称为 hbox。 然后我们使用 q label 类创建一个对象指向, 这个对象指向的名称为 label。 我们要在这个窗口类中重新编写滚轮事件的处理函数 will event。 所以 说我们要在这个窗口类的定义中重新定义滚轮事件的处理函数 will event 这个处理函数 will event 有 一个参数,它的参数为 q will event 类创建的对象指向指向 按 ctrl s 保存。 然后我们双击打开这个窗口内的原文件 word 点 c p p。 然后我们在这个窗口内的原文件中编辑代码。首先我们更改文本设置,这样显示的更简洁。 然后我们在这个窗口类的构造函数中编写代码。首先我们使用 set geometry 这个方法设置窗口的位置和宽高。 然后我们使用 set window title 这个方法设置窗口的标题。 我们设置窗口的标题为 will even 函数。 然后我们使用 new 运算符创建一个水平布局对象,并将该对象的首地址赋值给对象指向 hbox 这个水平布局对象的副对象为 list 指针,这表明我们设置了这个窗口的布局方式为水平布局。 然后我们使用 new 运算符创建一个标签控件,并将该控件的首地址赋值给对象。指定 label 这个标签控件显示的文本为提示。 然后使用 label 的 size font 这个方法设置标签控件的字体格式, 我们设置它的字体类型为黑体, 字号为十四。 然后我们使用 hbox 的 a d d width 的 这个方法向水平布局中添加这个标签控件。 然后我们重新编辑滚轮事件的处理函数 will yield。 在这个函数中,我们创建一个字符串 t e x t 这个字符串的内容为提示鼠标滚轮被转动, 然后我们使用 label 的 set text 这个方法设置标签控件上显示字符串 t e, x t, 然后我们使用 eat accept 这个方法接收事件, 然后我们使用 update 这个方法刷新窗口, 按 ctrl s 保存,然后我们单机运行按钮运行一下这个项目, 大家可以看一下,已经显示了这个运行窗口,这个窗口整体采用的是水平布局,在水平布局中有一个标签控件, 在这个项目中,我们使用 well even 这个函数来处理滚轮事件。下面我们滚动这个鼠标滑轮,大家可以看一下。当我滚动鼠标滑轮时, 标签控件上会显示提示鼠标滚轮被转动。这节课我们主要介绍了窗口或控件的常用事件处理函数。

各位同学好,欢迎大家来到用 qt 六创建 gui 程序微课堂,这节课主要介绍鼠标事件。在 qt 六中,我们可以使用 qmath 英文类表示鼠标事件。 在实际的应用中,鼠标事件还包括移动鼠标、按下鼠标按键、释放鼠标按键、双击鼠标按键。 不同的鼠标事件对应的处理函数和事件对象如下表所示,大家可以看一下这张表格,其中按下鼠标按键,对应的事件类型为, qevent mouse button press 对应的处理函数为 mouse press event 对 应的事件对象为 cue mouse event 对 象。释放鼠标按键对应的事件类型为, cue event mouse button release 对 应的处理函数为, mouse release event 对 应的事件对象为, cue mouse event 对 象。 移动鼠标对应的事件类型为, cue event mouse button move 对 应的处理函数为, mouse move event 对 应的事件对象为, cue mouse event 对 象。双击鼠标按键,对应的事件类型为, cue event mouse button dbl click 对应的处理函数为, mouse double click event 对 应的事件对象为 cue mouse event 对 象。 cue mouse event 类中封装的方法是比较多的,这张表格只展示了其中的一部分,大家可以看一下这张表格。比如,我们可以使用 position 这个方法获取相对于控件的鼠标位置。 比如,我们可以使用 scene position 这个方法获取相对于接收事件窗口的鼠标位置。比如,我们可以使用 global position 这个方法获取相对于屏幕的鼠标位置。 下面我们做一个例题演示实践一下。创建一个窗口,在该窗口中,可以通过鼠标点击绘制直线,我们演示实践一下。首先我们打开 q t creator, 由于我们要创建的项目中的代码比较长,所以我们已经提前将这个项目创建并编辑好了,就是这个项目代码。四, 这个项目 demo 四,位于地盘的 tempter 十文件夹中。从这个项目的文件目录中我们可以看出,我们选择的模板为 q t width, 应用 application, 我 们选择的窗口类的积累为 q width。 这个项目中没有 ui 文件。首先我们单机运行按钮运行一下这个项目, 大家可以看一下,已经显示了这个运行窗口,题目的要求呢,就是我们可以在这个窗口中通过单机鼠标来设置直线,我们演示一下, 大家可以看一下,设置了一条直线,然后我们再演示一下,大家可以看一下,又设置了一条直线,然后我们关闭窗口, 关闭代码。四,首先我们打开这个窗口类的头文件 with it 点 h。 下面我们讲解一下这个窗口类头文件中的代码, 首先我们要包含 q print 类,然后包含 q print 类,然后包含 q print event 类,然后包含 q point f 类。 在这个窗口类的定义中,我们使用 q point f 类创建了两个坐标点对象,这两个坐标点对象的名称分别为 pos 一、 pos 二。 在这个窗口类的定义中,我们重新定义了绘图事件的处理函数 print e word。 我们也重新定义了按下鼠标按键所对应的处理函数 mouse press event。 然后我们也定义了释放鼠标按键事件所对应的处理函数 mouse release event。 然后我们双击打开这个窗口类的源文件编辑点 c p p 下面我们讲解一下这个窗口类源文件中的代码。 在这个窗口类的构造函数中,我们首先使用 set geometry 这个方法设置窗口的位置和宽高,然后使用 set window title 这个方法设置窗口的标题,我们设置窗口的标题为会指直线, 然后我们使用 set mouse tracking 这个方法设置可以跟踪鼠标点的轨迹。 然后我们讲解一下按下鼠标按键事件所对应的处理函数 mouse press event 这个函数,它的参数为 q mouse event 类创建的对象指向 e 在这个函数中,我们使用了 f 语句,我们通过对象指向指向 e 的 button 这个方法来获取它的鼠标按键。如果鼠标按键为鼠标的左键时, 我们使用对象指向 e 的 位置,并将返回值赋值给坐标点对象 pos。 一, 下面我们讲解一下释放鼠标按键事件所对应的处理函数 mouse release ewind 在 这个函数中,我们使用对象指向 e 的 position 这个方法获取了当前鼠标点击点的位置,并将返回值赋值给坐标点对象 pos。 二、然后我们使用 update 这个方法刷新了窗口。 下面我们讲解一下绘图事件对应的处理函数 print 英文在这个函数中,我们使用 q pencil 类创建了一个绘图对象 pencil, 然后我们使用 q pencil 类创建了一个钢笔对象 pen, 我 们设置了这个钢笔线条的样式为五。设置了钢笔线条的样式为 q t solid line。 然后我们使用 painter 对 象的 set pen 这个方法设置了钢笔,然后我们使用 painter 对 象的 draw line 这个方法在坐标点 pos 一 和坐标点 pos 二之间汇成直线, 然后我们使用对象指向 e 的 accept 这个方法接受了事件,然后我们单机运行按钮运行一下这个项目, 大家可以看一下,已经显示了运行窗口,我们在这个窗口中可以通过单机来绘制直线, 我们演示实践一下,大家可以看一下,绘制了一条直线,然后我们再演示实践一下,大家可以看一下,又绘制了直线。这节课我们主要介绍了鼠标事件的用法。

上期视频我们说了 q t 的优点,那么这期视频呢,我们聊一下 q t 有哪些缺点。使用了一些非标准的 cd, 加 库太大,什么都有,几乎什么都能做,导致他的 bug。 也有很多原声的 word 引擎因为版权问题不支持音频播放,所以呢,需要自己编原码,加上音频支持,性能表现不是特别优秀等。 当然了,这些是一些抽象且普遍被人提及的优缺点,涉及到一些句子的特点或者不为人知的,需要实践得来的一些缺点,不会在百科类的文章中找到, 需要真正用过之后才能会发现你。比如说信号与槽道效率问题。信号槽的性能问题一般情况下是比较难以感知,但是在对延时敏感的功能中,如需要计算时间戳或者是视听视觉的功能,过多的使用信号槽 可能会带来明显的延时。这种情况呢,采用回调方式会更可取。效率的问题主要是 qt 信号槽机制设计的函数查找以及参数传递,其中包括列表操作、事件处理啊,一线程中所的处理。一般情况下呢,信号槽与回调的效率有十倍之差,情况复杂的情况下 远超过十倍。 q t 的 u i 绘制、事件传递、网络模块儿等功能都非常依赖信号槽的机制,这也同时意味着 q u t 的运行效率如果深究起来可能算不得优异, 但由于它使用的是 c 加框架,性能始终不会太差。还有网络模块的性能问题, qt 内的沃壳模块性能差强人意。前面提到信号操机制的影响,此外并发和数据传输性能均比较低,这与 qt 底层机制与架构有关系,使用 qt 网络模块 块开发小型功能没有问题,大型系统可以选用其他的库,毕竟刺激家乡空的网络库也非常多的。另外还有 q t v g 的性能问题,前文提到我信号又调到问题, q t v g 特中涉及了大量的绘图事件和信号传递,这是对效率的第一大影响。 此外呢, qtv 的图像渲染都不是自绘,不存在意念加速,如果场景变得复杂,性能会有明显的影响。虽然跨客 与 q m l 可以支持硬件加速,支持 open g l 图形渲染,性能也非常强悍,但跨口和 q m l 存在硬件兼容问题。 我们开发产品过程中曾经做过 q t 四前一道 q t 五的尝试,希望能更多的利用跨客突的强大性能与功能。但没想到在 h d grow face 三千显卡或低级别显卡中不能运行,导致打开 程序即崩溃或者是白屏,也尝试过自行变异 kt 原码,使用不同的选项参数,但最后都没有解决这个问题。所以后来呢,我们产品中也没有在使用跨可突的功能。世界上没有完美的编程语言,也没有完美的程序框架, 就像你搞对象一样,你选择了他的优点,那么你就要接受他的缺点。我只是作为一个使用了 qt 八年的程序员,把自己这些年的经验分享出来,希望可以帮助到需要的人,顺便赚点流量。 但是不知道为什么,最近总有人在评论区给我抬杠,上期视频我发了一个 q t 都有什么优点?有个人给我评论说他的缺点就是除了卖客卖人头基本不赚钱。这个评论呢,我看着很不爽,但是我也没有去删,在上期视频中,你们可以自己去看,关注我时间久的朋友们都知道,老王什么时候卖过客, 什么时候卖过人头。至于学习 qt 到底能不能找到工作,能不能赚到钱,去看一下招聘网站就知道了,没必要在这为了黑而黑,不是每一个做技术的博主都是麦克卖人头的好吗?虽然我们做视频号都是想赚流量赚钱,但是想赚钱有什么问题吗? 至少有一点,我是可以保证我不会赚黑心钱,我也不会去坑别人。我接个毕业设计总可以吧,我接个私活干干总没问题吧? 我带货卖本学习 qt 需要的书也没有什么问题吧?挣钱嘛,生意不寒颤。好了,程序书写人生,代码改变世界,我是爱编程。老王,如果你对代码感兴趣,对技术感兴趣,欢迎关注我,一起吹牛! 天灵灵地灵灵,喷子喷子快走开!天灵灵地灵灵,黑子,黑子也走开!

啊?你说一下这个 qt 中的这个窗口类, qvtqvtqvt 是 qt 中的一个窗口,它是所有窗口的副流,就是 所有窗口,包括命令口,还有这个 dialog, 就 带 qdr 的 一种是,反正 qvt 的 就就一个窗口,它没有那个上,没有那个上面的工具栏,下面也没有那个东西。 然后 qq 第二 log 里边可以有很多东西啊, qq 里, qq 里边可以有很多的主页,包括写一些网页的话,就是它里面可以放那种跳转的那种就可以放那就行。然后里面有很多框架的插件,它都有,没有用的话一般是用来就是 做跳转,就是 跳转, qq 也是做跳转的吗?那不写个小一点嘛?就比如说 q 飞机类,本身跟跳转是没有任何关系的,所以看大家在回答问题的时候就是太乱啊。我,我这个问题问的时候我说了,我说 聊一聊这个 q v 的 类,对吧?那你这个聊的时候应该怎么去聊?首先是开篇点睛说明这个 q v 的 类,它是这个 q t 里边提供的一个叫基础窗口类的东西,用来干嘛的?用来做窗口展示内容的,并且这个 q v 的 类它也是这个 q t 中所有 空件类的这个副类啊,同时呢,它也是 q object 的 类的子类,所以说它身上继承了 q object 的 这个呃,对象,对象数的关系,也就是 qt 里边的是一个内存回收机制,它继承了这样一个关系,这是开宾点的一个说明啊。然后呢,这个窗口类里面就我们在不在做这个界面显示的时候,是一定需要用这个窗口类的, 它里面可以可以展示这个很多相关的这个空间啊,做展示。然后这个窗口本身呢,它可以也可以去设置这个副对象,也可以把它加入到这个对象树里面去,对不对?然后它里面有一些这个相关的属性啊,可以调这个窗口的位置,窗口的大小尺寸, 窗口的标题、图标等等,这些东西是不是都可以设置?那同时这个内容是不是也具备一些这个相关的信号?比如说右键菜单信号 对不对?那比如说这个窗口能不能使用的这个,这个这个检测信号也可以用啊,它里边也提供了一些对应的槽函数, 可以怎么样?比如说 clothes 就 可以关闭窗口, heat 可以 隐藏窗口, show 可以 显示窗口,这是它里面区别的东西。那大家想想,你如果说按照这样一个过程去说的话,那这个类说的是不是就稍微清晰一点?那你刚才他提到一个说跳转,我用了 跳转本身,它是 q v g 的 这个功能吗?是跳转功能是啥?是链接,这不超链接作为跳转的功能,所以 q v g 的 类,它的本质它就是做窗口展现的,就用来显示内容的,明白吧?那还有一个类叫 q dialog 啊,咱刚才说这个 q dialog 是 不是 q v g 的 这个词类呢?不是,那当然是了, q dialog 是 不是窗?那问你弹窗是不是窗? 弹窗是不是也是窗口啊?它咋能不是这个窗口类呢?只不过说这个弹窗我们在用的时候,它跟这个 qweigit 不 太一样, qweigit 它是可以作为任意的这个窗口攒下来用的, 但是 qtlog 它有一个特点呢,是弹出框啊,对不对?我们把这个弹框跟一个按钮绑定,那么点击一个按钮,它是不能在桌面上打开一个弹出框,而且弹出框的话,一般这个大小是不会稍微小一些啊?里边的空间内容是不是稍微少一些?它是针对某一个特定功能来用的,比如说 我想做一个新增书籍,写一个弹框啊,我想做一个,你确定要删除吗?搞一个类似于这样的信息弹框等等啊,所以它有很多这个弹框的显示,它每一个类的这个功能是不一样的。 所以说白了,大家在大家再去回答这个类是什么的时候,其实问题很简单,你的思路就是把这个类中类的功能类的属性类的方法类的信号槽,把这五个点一说,这个类不就完了吗?而且你在说的时候你还不会感觉到说什么,说着说着忘了 说什么,又又懵逼了。对,你知道这一个点,你说大家想想一个类的构成,你说它有什么构造公共的方法,有的属性 q t 里面它是不是有这个信号槽机制?所以再加个什么?加个内置信号,加个内置的槽还有啥对不对?这不就是回答问题的思路吗?

对于单片机开发来说,最重要的就是去解决这个软件移植时候报错的一个基本的一个能力啊。这是一个一个同学的一个这个软件,嗯,然后我把它 解决这个报错的过程稳住下来,你看一下,嗯,首先编一下这三十个错误,我们就一个一个开始吧。首先你看就是这个,这个报错, 嗯,他报这个,他报这个的话,这个怎么解决呢? ctrl r, 然后全部屏蔽, 然后变异,嗯,然后再 ctrl r, 把这个屏蔽掉的全部打开,然后再变异。嗯,好,这个时候 我们勾图,呃,就能找到,这就是这个的原型,这个原型的话,嗯,你看它 这个也能找到,这个也能找到。我们里边就需要添加它这个点 h 啊,现在也有它这个点 h, 有 它点 h 的 话 点一下看看, 因为这多了分号啊。我怎么看着明明是可以的,但是它就是不能使的,这个红定义它是不要分号的, 你看这样一改的话,这个错误估计一下子会减少非常多, 就剩一个了,一下子从三十个就剩一个,我们看这,这是哪一个报错啊?就是这。嗯, 这的话他是 就是这个的 g p i o 的 触使化的一个一个问题, 这就是开启 g p i o b 的 时钟,开启时钟的话我们来这儿看一下,你看它应该是这个,对吧?应该是这个,你不是 g p i o b, 嗯,再打开这个 led, 对 吧?应该把这个复制过去,然后改成 b 就 妥了嘛? 然后再保存。 现在还剩一个就是这个杠 n o p, 杠 n o p 这个东西呢,它就是一个在这就是一个很小的延时的一个作用,很小的延时的作用呢?我在我的里边我是写了一个, 嗯, d, e, l, a, y 写了一个,自己写了一个小的延时函数啊,就是一一个负循环, d, e, l, a, y, m i 小 于二, 我就是起了这么很小的一个,其实它这个延时在这呢,它是很小的,就就执行一条机器指令啊,就就就这么小,我们可以给它复制过来, 然后 再往下替换,把它都替换了, 这样的话这个报错应该就没了,这就是解决这个报错的方式啊,这个我是一一行一行的去把它解决了一下。好,这个报错已经全部解决完了。

好,那你你简单说一下,就是 qt 里边常用的空件有哪些?然后举几个例子, 并且说的时候再把这个常用的空件里边那个作用以及它里边那个信号能用来干什么?简单说一下,这里面的常用的空间有一个 linen 的 呃输入框空间,它是它为用户提供的一个输入框和编辑文本的 一个,一个提供的一个为用户提供的一个这样的一个输入方,他是用来做什么?是他有,呃,可以呃,当用户呃呃选中或者未选中,呃,有有用户选中和未选中、未选中和 和复制粘贴的一个信号。呃,还有,呃,还有其他的信号是你说的空面。首先你这个读的时候 你读的啥? line? 啥?呃, line? n, 那 么 e、 d、 i、 t 呢?你像这些这些英语单词你要不会读的话,你你那个百度翻译啥的,那不有很多那些在线的工具吗?啊?你们都都不读一遍了? line edit、 edit、 edit, 编辑,来来来, end, 来 end, 我 的妈,来 edit, 对 吧?你说的时候应该说一下它这个控件,它在这个桌面上的展现形式是什么呀?是不就是一个正常的输入框正常输入,然后呢?它主要的作用就是用来收集用户信息的, 用户可以在输入框里面去填写一些这个对应的信息,然后里边有一些这个信号。嗯,单机和双机 点击和双击按钮按钮输入是像是呃用户输入文本或者编辑文本时用来显示提供显示的一个那个,还有一个信号是还有信号其他的信号。 你这说的是信号吗?它这里边第一个信号就是啥?当输入文本内容发生改变时,是不是触发一个信号?输入文本或者编辑文本?编辑文本的时候也有信号啊?也有。还有什么?还有。呃, 选中的选择文本和那个方标改变时那个啊,挺好。对,还有没有?你还有一个,还有一个比较核心的,专门用于做表单验证用的,当拒绝这个用户输入的时候,正则,正则输入那个验证的那种。 人家那个信号不是正则输入验证啊?人家信号是当输入框拒绝用户输入信息的时候发的一个信号叫 input reject, 是 不是?这跟正则有啥关系吗?正则只是我们用来做输入框内容验证的一种 方法而已,它只是一种验证器而已。对,乱,很乱。然后你在说的时候,你正常直接说这个。有,有一个这个控件叫 q line edit, 用于用于做这个用户输入的,可以它这里边有这些信号。你像刚才我们说那个,当输入文本内容发生改变时,它触发信号。 那你不能光说一个信号啊,你得说我们用它可以,是不是可以做一个密码验证?密码的弱中强,是不是强度较验? 可以做一个吧。其次你像那个,那那个输入框那个施胶事件,那我们在输入信息之后呢?可以直接让它施胶,比如说登录的时候,哎,失去焦点时,可以直接验证一下这个你输入的账号是否已经被注册过呀?或者账号是否正确呀,可以做这个验证。那个 input reject, 这个是当输入框拒绝用户输入内容的时候,这个验证器它里边可以做各种各种验证,都可以做里边手机号的格式将印 汉字胶印、身份证号胶印、邮箱胶印、密码胶印等等,用它时候都可以做,确保能够用户输入的信息要是正确的。啊,这个胶印主要做这个东西的,那这只是我们 qt 众多空间里边的其中一个,就是输入框空间,那除了这空间之外,我们之前说的还有什么? 哼! q label 做文本信息展现的,比如说图片信息展现的。二什么? q 后期 button 那 个按钮系列的普通按钮、单选按钮、多选按钮 等等,这是不是一些常见的空间啊?在这里边我们说比较核心的用户,比较核心的就是按钮空间以及这个输入框空间。像这些东西我们在项目里面到时候用的时候比较多一些,大家就需要把这个空间里边的作用,他的展现形式以及他所具备的这个各种信号 啊,信号里面能够针对于什么样的场景去使用,这个是需要大家详细了解的吧?啊? ok。

各位同学好,欢迎大家来到用 qt 六创建 jy 程序微课堂,这节课主要介绍信号与槽。在 qt 六中,控件之间的通信,主要使用了信号与槽机制。 信号是指 qt 的 控件在某个动作下或状态改变时发出的一个指令或信号。 槽是指系统对控件发出的信号进行响应或者产生动作,通常使用槽函数来定义系统的响应或动作。 在 q t 六中,我们可以使用 connect 这个函数将信号与槽函数进行连接。 这个 connect 函数有四个参数,其中第一个参数 send 表示信号发射者的对象指令。其中第二个参数这个小括号中包裹的 signal 表示发射的信号。 其中第三个参数 receiver 表示信号接收者的对象指令。其中第四个参数,也就是这个小括号包括的 slot 表示信号接收者的槽函数。 势利代码如下所示,大家可以看一下这一行代码,这一行代码呢,就是使用 connect 这个函数, 将 springbox 这个对象指向的 value change 的 信号与这个窗口类的函数 numchange 的 信号相关联。大家要注意,这种 connect 函数的写法是可以兼容 qt 四、 qt 五的代码。 下面我们介绍一下 q t 六推荐的信号语槽的连接方式,大家可以看一下这个 connect 函数。这个 connect 函数是基于函数指向的新语法, 其中参数 send 表示信号发射者的对象指令,其中参数 send or class。 然后是连接符 signal 表示信号发射者的信号,其中参数 receiver 表示信号接收者的对象指向时针,其中参数 receiver class。 连接符 slot 表示信号接收者的槽函数, 视例代码如下所示,大家可以看一下这行代码,这行代码表示将按钮 button 的 单机信号与这个窗口内的槽函数 close 相关联。 大家要注意,我们在使用函数指针直接绑定信号和槽的时候,编辑器会在编辑期验证信号和槽的存在性以及参数兼容性。 但我们使用 qt 六推荐的方式,避免了旧版字母串语法的运行时的错误风险, 而且更安全、更高效。所以我们在编写代码的时候,如果要兼容 qt 四、 qt 五的代码,则推荐上一种 connect 的 写法。如果单纯的只是使用 qt 六来编写代码,则 推荐使用这种 connect 函数的写法。信号与槽的基本原理就是当特定事件发生时发送信号, 然后传递给参数,由参数进行响应或产生动作。信号与槽是 q t 的 核心机制,也是 q t 六编程中对象之间进行通信的机制。 信号与槽有以下几个特点,第一个就是一个信号可以连接多个参数,当发射信号时,插槽将按照他们的连接顺序一个接一个的执行。 第二个就是一个信号可以连接另一个信号,也就是当发射第一个信号时,立即发射第二个信号。第三个就是信号与槽机制完全独立于任何 j u i 事件循环。 信号与槽的连接方式既可以是同步的,也可以是异步的,信号与槽的连接可能会跨县城。 在 q t 六中,我们可以使用 q object 类的帧的这个方法,在槽函数中获取信号发射者的 q object 对 象。指向 这个帧的函数的定义如下所示,大家可以看一下帧的这个函数的返回值为 q object 对 象指向。在 q t 六中获取信号发射者的视力代码如下所示, 大家可以看一下这几行代码。在这个函数 button click 中,我们可以使用 send 的 这个方法获取信号发射者的 q object 对 象指向。 在这一行代码中呢,我们使用 q object cast 这个方法呢,将获取的信号发射者的对象指向指向指向。 在 q t 框架中,开发者可以在自己的设计类中使用关键字 signal 自定义信号, 信号就是在内定义中的一个函数,在该函数中可以使用关键字 a m 的 发射信号。 下面我们做一个例题演示,实践一下。创建一个窗口,该窗口中有一个按压按钮,一个标签空间要求创建自定义信号, 单机该按钮会发射自定义信号,若发射自定义信号,则标签显示提示信息。我们演示实践一下。 首先我们打开 qt creator, 由于我们要创建的项目中的代码比较长, 所以我们已经提前将这个项目创建并编辑好了,就是这个项目代码。二、这个项目位于地盘的 tempter 九、文件夹下,从这个项目的文件目录中我们可以看出, 我们选择的模板为 qt widgets application, 我 们选择的窗口类的积累为 q widget, 这个项目中没有 ui 文件。首先我们单机运行按钮运行一下这个项目, 大家可以看一下,已经显示了这个运行窗口,这个窗口整体采用的是水平布局, 在水平布局的左侧是一个按压按钮,这个按钮上显示的文本为单机文。水平布局的右侧是一个标签空间,这个标签空间上显示的文本为提示。然后我们关闭这个窗口, 然后我们关闭 demo。 二、首先我们打开这个窗口类的头文件 word 点 h。 然后我们讲解一下这个窗口类头文件中的代码。首先我们要包含 q push button 类,然后包含 q label 类,然后包含 q h box layout 类,然后包含 q string 类,然后包含 q font 类。 在这个窗口类的定义中,我们定义了一个整形变量 to, 设置它的出使值为零, 然后我们使用 q push 八零类创建了一个对象指向,指向指向的名称为 b t n。 然后我们使用 q label 类创建了一个对象指向,这个对象指向的名称为 label。 然后我们使用 q h box layout 类创建了一个对象指向,这个对象指向指向的名称为 h box。 在这个窗口类的定义中,我们也定义了两个槽函数,这两个槽函数的函数名分别为 b t, n clicked change label。 在 这个窗口类的定义中,我们使用 signals 这个关键字创建了自定义信号 n u m changed, 它有一个参数 i。 然后我们打开这个窗口类的原文件编辑点 c p p。 下面呢,我们讲解一下这个窗口类原文件中的代码。在这个窗口类的勾导函数中,我们首先使用 set 这 ammeter 这个方法设置窗口的位置和宽高, 然后使用 set 文档 type 这个方法设置窗口的标题,我们设置窗口的标题为自定义信号。然后我们使用 n 韵算符创建了一个水平布局对象,并将该对象的首地址复制给对象指定 h box 这个水平布局对象的负对象就是当前的窗口类,这表明我们设置了当前窗口的布局方式为水平布局。 然后我们使用扭运算法创建了一个按压按钮控件,并将该控件的首地址复制给对象。指定 b t n 这个按钮控件上显示的文本为单机我, 然后我们使用 b t n 的 set function 这个方法设置了这个按钮的字体格式。 然后我们使用 n 运算符创建了一个标签控件,并将该控件的首地址复制给对象。指定 label 这个标签上显示的文本为提示。 然后我们使用 label 的 set function 这个方法设置了标签的字体格式。然后我们使用 hbox a d d widget 这个方法向水平布局中添加了这个按压按钮空间,并添加了这个标签空间。 然后我们使用信号槽,将这个按钮的单机信号与这个窗口内的 槽函数 b t n collect 关联。然后我们使用信号槽将这个窗口类的自定义信号 num 帧值的与这个窗口类的槽函数帧值累包相关联。 下面呢,我们讲解一下这个自定义函数 b t n collect。 在 这个函数中,我们首先将这个整形变量 to 加一,然后我们使用 amit 这个关键字发射自定义信号 num 改成这个自定义信号 num 改成的 的参数为 total。 然后我们讲解一下自定义函数乘以 label。 在 这个函数中,我们将这个参数 i 由整形变量转换为自负串,并将它保存在自负串 a u m 中。 然后呢,我们将这个 a u m 自附串与其他自附串相拼接,并将拼接后的自附串复制给自附串 s t r 然后呢,我们使用 label 的 settext 这个方法设置这个标签上显示的文本为创建的自附串 s t r。 然后我们单机运行按钮运行一下这个项目, 大家可以看一下已经显示了这个运行窗口,这个窗口整体采用的是水平布局,水平布局的左侧是一个按压按钮控件,这个按钮控件上显示的文本为单机文。 水平布局的右侧为一个标签控件,这个标签控件上显示的文本为提示。然后我们单机这个按钮。 大家可以看一下这个标签空间上显示的文本为提示,这是第一个自定义信号。然后我们再点击,大家可以看一下标签空间上显示的文本为提示,这是第二个自定义信号。然后我们再点击这个按钮, 大家可以看一下这个标签控件上显示的文本为提示,这是第三个自定义信号。我们关闭一下这个窗口,然后关闭 demo 二,然后我们打开这个窗口类的头文件 with it 点 h 在这个窗口类的头文件中,我们可以使用这个 signal 这个关键字来创建自定义信号。然后我们再打开这个窗口类的原文件编辑点 c p p 在 这个窗口类的原文件中,我们可以使用 amid 这个关键字来发射自定义信号。这节课主要介绍了信号与槽。

很多小伙伴刚装 mdk 总踩坑,其实装软件不难,今天我就把实操流程交给你们,帮大家少走弯路,跟着来就行。下载安装 mdk, 记住,咱们做 stm 三二开发,选的是 q 版本的 mdk 版本,不是 c 五幺版本, 也不是其他版本,千万别下错了。下载完成后点击安装。安装路径我选择的是地盘这个位置,路径不能包含中文姓名和邮箱,随便填就行。 点好后点击下一步,然后等待安装就行了。这个过程大概持续两到三分钟,等进度条走完,退出安装界面就 ok 了,然后右键以管理员身份运行。 q 五,找到顶部的 file 菜单,点击 license management, 可以 看到目前的版本是 light 版,但 代码量有限,对于代码量少的工程来说完全够用。但如果你们后续想写复杂的代码,就需要做个简单的设置,解除这个限制。操作也很简单,解压配套的设置文件,打开后选择 am, 然后选择 q 里面的 cid, 粘贴到设置文件里,点击生成授权码, 再粘贴回 k o 五,点击添加提示,成功就好了,这样限制就解除了,全程很简单,也没有任何风险。然后就是安装你们用哪款芯片的 d f p, d f p 就是 芯片支持包,简单来说就是让 k o 五 认识咱们用的这个芯片的钥匙,嗯,要是不装的话,新工程找不到这个芯片,打开 k o 五,找到顶部的 pack in solar, 点击打开,在左侧搜索栏里找到 s t m 三二 f 幺零三 c 八, 我用的核心版就是这款芯片,右侧栏最上面点进 excel, 不 用做任何额外设置,等他装完就 ok 了。装完后直接关闭,重启一下 q 五, 让设置生效。然后重点来了,很多小小伙伴走到这一步,编码会报缺少版本五编辑器的错误, 我来告诉你们原因和解决方法,其实就是 q 五点四二版本默认缺少对应的编辑器,就没法进行编辑代码, 相当于咱们干活没有工具用默认安装的版本六会报错。这个问题解决起来也很简单,用我提前下载的变易器包点压安装,安装路径必须选择 kill, 安装目录下的阿姆,文件夹内必须和 kill 的 安装路径对应,不能改。点击 next, 等待安装完成。 最后一步,打开我之前保存的代码工程,直接点击顶部的 build 按钮,开始翻译,等待翻译完成。这个过程很快,底部如果出现零 errors 零 warning 的 时候,就说明翻译成功了,整个开发环境也就搭建好了。 这个过程下来,虽然每部安装都会有点慢,但只要一步一步跟我来,绝对是零踩坑。下期咱们介绍 stm 三二 cube、 mx 的 安装。

大家好,欢迎来到蒙马工作室,我是老马,今天将要和大家一起探讨的内容是表格窗口空间。 在应用程序当中,表格是最常用的空间,通常用于查看多条数据的记录结果,也是 qt 中最复杂的空间之一。 qt 为我们提供两种方式来实现表格,比较容易理解的 qtuty vgte 以及需要自定义数据模型的 qtvv。 我们先来了解一下 qtut vigt。 qtut vitt 包含两个主要的部件,分别叫做表格元素, qtutevigit 的 iphone 和表头 q i 的 vivo。 q 嗨的 vivo 是用来定义和更改表头的一系列属性,而 q tyboys 的艾特被用来设置每个单元格,也可以说每个单 单元格都包含了一个 q tuteboyg 的艾特类,这也是表格空间相对于其他空间复杂的原因。 下面我们通过实力来了解一下 qtele vj 是如何实现他的一些属性。我们打开工程,打开 uit 文件,我们找到左边的 iphone vitts 有一个 tyboyj, 我们把它拨到我们的 u i 文件当中。 我们为这张表取一个名字,历史记录, 修改内部空间文字的颜色和大小。 我们编辑一下,生成了我们的应用程序。我们前面也提到了表格空间是由表头和表格单元构成,在这里我们 不要通过 q t clout 工具去实现表格。表格的实现对于代码来说相对要简单很多,我们跳转到代码部分,我们通过代码来设置 tyboy 截图。我们为表格添加一个表头 色字三列, 他们威胁的有个函数叫赛道哈利真海尔的雷 boss 设置我们的表图内容,好,我们边运行一下,我们为表格 设置了一个表头,这个表格有三列,分别叫做序号,时间和内容。看到这个表格的时候,首先会发现一个问题,后面还有很多留白,我们 更希望序号站的像素要短一点,时间要站的长一点,内容填充满其余的表格难度表格有个函数叫 set carry yet 表格,用这个函数可以设置第零列的宽度,我们设置为一百,设置第二列他的宽度为两百。在这里碰到一个问题, 就是如果设置第三列,在不知道他的宽度情况下如何去设置,还是需要通过计算得到第三列的宽度,这对于我们程序员来说太过于复杂,太过危急的。也为我们提供了一个函数,叫做赛的筛选类,赛的目的 表示设置我们这个区间大小。他的一个模式,他为我们提供一种模式叫做拉伸,填充留下的其余空白,我们便于运行 一下,我们得到了运行结果,按照我们相应的方式进行了宽度的调整,我们把鼠标放在这个地方,发现我们可以自动的去拉伸他的宽度,一般在我们应用程序当中,这个长度不希望去拉伸。 那么系统是否提供这么一个函数来固定表头的尺寸呢?在在筛序幕的有另外一个不同参数的函数,设置表头的基本模式,找到 fax 的属性,这个函数需要在设置列宽之前设置,否则表格的列宽设置将会失效。 编辑一下,看一下运行结果,我们每一列鼠标已经不能够拉动,下面我们就来插入一些数字,我们编一个函数音色的胎部艾特, 我们在图文件中加上他。每个表格单元他都是由 qtuboys 的艾特来设置他的属性。我们有三列, 我们通过循环来加载一百行,我们当 a 等于零的时候是添加第一行第一列,我们先去获取一下当前的 typu 他总行数。我们为表格新添加一行叫做音色的 logo, 我们把我们要新添加的一行的行号写进来,边运行一下,我们生成了 改行。我们突然发现一个问题,我们的列表头他自动生成。很多应用程序当中我们不喜欢这个列表头,我们可以把列表头隐藏 写的 v 字母。我们希望在序号添加上我们的内容。从一到一百艾特零等于六 q 开个 v 加艾特要用他的函数晒他艾特艾行零裂。 同样我们为第二列添加时间, 二零二零幺二幺零幺六四零。我们为第一列设置时间, 我们为第二列设置内容。再次运行,我们把数据添加进来,下面我们就来设计一下表头的风格,通过简单的修改让表格看起来漂亮一点, 我们可以设置他的字体色的风黑体十六号字。我们希望表格行列交替有一个颜色的变化。通过危机的提供一个函数叫塞的奥特莱斯 处,我们在这边运行一下,看到我们的列表有一个基行和偶行颜色的一个交替,看起来更加的舒服。表头的文字变大了,有时候我们希望表头他的字全部都是左对齐, 我们可以这样设置。表头有一个函数叫 setit fodig mant, 把它设置为水平左对齐和垂直中间对齐。我们再来看一下,我们得到了运行结果,表头所有的文字 全部做对齐,如果我们只希望最后一项是做对齐,前面两项序号和时间他是居中对齐,我们有什么处理办法?相应的表头也有他的一个艾特叫二裂针头艾特,我们取他第零个位置设置他的对齐方式, 他叫晒得太死的二零一九们。同样我们把第一列设置为右对齐,居中对齐,右对齐,左对齐。我们这里有一个已经写好的样式表,我们复制过来。我们首先 取消边框,然后把下面的边框设置为一个像素,把右边的边框设置为一个像素,背景颜色设置为白色,文字的颜色我们也设一下 运行,这就是表托,当然我们可以改一下背景颜色。我们一定会有一个疑问,为什么先把边框取消掉呢?再设下面的边框和右边边框,我们先可以把这两行给取消掉,我们看一下结果,我们设置为 一个像素,我们看一下是怎么结果,我们看到运行的结果,我们可以看到中间的这条线特别粗旷,因为我们每个表头他也是一个单元格,他既然有左边距,相应的也有右边距, 所以我们把编句设为一的时候,表格序号他有一个,右边句是一单元格,时间他的左边的编句也是一,加起来就是二,所以中间的这条线看起来特别的粗,所以我们可以先把它 取消掉。我们设置单元格右边的线条,然后下边的线条,我们左边上边边框都相应的取消掉,左上有我们的外边框,这样我们看起来就很舒服。我们还原一下代码,这就是表头的样式表。 今天的分享就到这里,欢迎大家留言评论,如果喜欢我们的视频,请点赞转发,这里是萌满工作室,我们下期再见!

好,今天和大家分享一个,如果我们用 q t 做了一个简单的小软件,如何打包给别人用呢?因为有时候我们自己电脑能运行,但是呢,如果我们把发布版的 软件打包给别人,有时候运行不了,说是缺文件,这时我们用这种方法打包。好,我们做一下演示,我打开一个之前自己做的软件。 好,这是客户端,我们看一下, 一会为了加深印象会重复两遍,因为刚好这个是客户端,一会再把客呃服务端打开, 我们是选择一个他是发布版的,然后点击运行。 好,他是在运行中,我们稍微等一下这个绿颜色,然后 这边也能看到。好,呃,这就是之前变得一个软件,我们先把这个软件发到别人电脑上,可能有时候打不开,我们用这种方式,我们先关闭, 因为我们刚才编译,然后运行了,所以的话这边就有一个发布版的软件 release, 我们可以看一下,这是在自己电脑上,他是能打开的,但是在别人电脑上可能打不开。 就是如果我们把这个发布版的这个软件拷贝给别人,所以我们用这种方式可以新建一个文件,假如这个文件的名字就是 plant, 就是这个名字,我们可以把帆布版的 exe 拷贝在刚才建的目录中,然后输入一个命令 cmd, cmd 的话,然后我们要给他打包成温度是不能运行的文件。 windows wind e diplo windows 步数 q 七,然后把要步数的这个文件名,然后打上,确定 好,这时候已经运行成功了,我们可以看一下,这是我们新建的这个文件,已经做出来好多的文件,这些文件就是支撑在其他电脑运行的一个环境, 我们再演示一遍,这个是 clan, 一会我们再演示一个他的 service 服务端, 一会我们把自己电脑上运行好的软件考配到其他电脑上,看能否运行成功。好,我们看 service, 我们运行一下, 这时 siris 已经打开了,我们把自己编好的软件以发布版的形式,然后运行, 这时候他在运行 好,现在已经运行成功了,我们可以关掉, 打开那个已经编辑好的那个目录,这是 service 好,瑞丽丝,然后我们新建一个文件夹,假如就叫 service 好,我们把这个编辑好的这个软件,这个 ex e 考进去,然后用刚才的命令 windows, 这是在 window 下,这飘是步数 q 七,然后把名字一打,然后回车。好,这时候已经设置好了。这 我们一会测试一下,看能否在其他电脑上运行。我们把这两个文件发送到另外一台电脑,我这个电脑是, 嗯,温室系统,温室的他是可以打开的,可以看一下,他是可以打开的。好,我们现在把刚才用命令打包好的软件发到其他电脑上,看是否能够成功。 我们放到 这是一个温七系统,我们放到温七系统下, 真切 是设备 style, 我们再把 ct 拷贝过去,这是我们之前生成的 好,也要考虑过去。 好,刚才是模拟,就是把自己生成这个软件,这已经打包好了,然后拷贝到别人电脑上,我们看一下可以运行吗? service, 嗯,运行成功,然后是 clint 运行成功。其实他的见面可能是有差异的,因为有时候和分辨率有关,有差异的。嗯,假设我们 tcp 通信 一下启动服务 很好,允许看一下软件是不是有问题,然后连接服务, hello, what? 嗯, ok, 接收到, ok, 好,没有问题,好,这就是 q 七软件打包的一个过程,和大家分享一下。

我们将介绍 qt 开发一个软件,下面将介绍如何快速开发一个在 windows 上可以运行的软件,快速让你获得成就感。 第一步,使用 qt creator 创建新的项目。这里我们导出一个完整项目例子来代替这个创建新的项目。导出该例子到桌面上 qt creator 打开该项目,这样就处于与我们创建了一个新的项目一样的状态下。 我们选择编一器进行编印,确保粒子没有问题, 运行正常。当前状态就是我们已经开发好了的项目状态,接下来进行打包。 第二步,为我们的项目选择一个图标,这个图标将用来放于桌面,点击图标启动我们应用。我们根据 qt 开发手册上的按钮链接,进入看下载网站, 随机选择一个任意的图标进行下载。选择这个火的图标起名为 hotpingg 吧。 在 qt 中,应用图标的使用需要看格式,这里同样点击按钮进入转化格式的网址。将我们之前下载到桌面上的 hot bng 放于这个网站中进行转化。 将转化适当大小的图标同样下载到桌面,起名 hot icon。 接下来将 hot echo 放于源码目录中,与 pro 文件同处于一级。 我们可以测试一下应用图标并没有生效是因为还需在 pro 文件中添加或 c a k n n echo。 再次测试 仍有报错是因为我们要把应用图标的名称进行修改,而 c a 看下等于 hotkey。 这样我们可以看出应用运行起来的时候,任务栏和主界面左上角的应用图标已经显示出来。 第三步,添加运行的动态库到项目生成文件夹为 read。 我 们首先进入 qt 手册中序号二,在 windows 下打包的选择 read 文件夹中的 excel 文件生成我们所需的两个路径, 选择之后,下方就生成了我们所需的两条命令,我们点击第一条命令复制按钮,再打开 qt 官方自带的打包工具, 将第一条命令复制进入,点击运行就能进入指定文件位置。接着我们点击第二条命令的复制按钮,复制进入并运行。这样操作之后就能将应用所需的 libs 文件夹中, 这时点击 excel 文件,我们开发的应用就可以正常运行。第四步,将瑞丽所文件打包成为一个 excel 文件, 我们点击桌面上的这个打包应用。第一项,选择我们瑞丽所文件夹中的 excel 文件, 接着将 release 文件夹添加到这里面, 点击打包,就能将 linux 文件夹中的所有 dl 动态库和 exe 文件全部打包成为一个 exe 文件,生成的 exe 文件就默认存在 linux 文件夹中, 就是这个 project 零一 box exe 文件我们复制到桌面上,这样一个完整的应用就开发完成。 以上就是 q t 开发应用的全过程,我将把该应用和打包软件下载链接发于评论第一条中,可进行下载,也欢迎关注我,谢谢!一个软件是怎么被开发出?

哎,你说一下这个 qt 中的容器类型的空间都有哪些?大概说几个,然后每种空间的特性呢?来讲说一下 啊。首先就是 qvt 的, qvt 的 它是所有窗口类的副类啊,它也是它,它可以作为一个独立的窗口,也可以去包含其他窗口,它里面的一些 api 函数就是 经常用的嘛,呃,什么 show 啊, close 之类的。然后,呃,还有个窗口类是 toolbox, toolbox toolbox 一个工具箱的容器,它,呃,它可以通过还可以做到那些 qq, qq 那 个抽屉这些的效果, 就是你点开那个抽屉可以打开一个紫方格,嗯,可以,还有,呃, table, 还有 type v 机, type v 机呢,它是一个标签,它是一个带标签的,带标签印的创口,它可以也可以存储多个紫方格,通过标签可以 去打开这个窗门。嗯嗯,还有 score area 是 吧? score score, 呃, score area 就是 它可以,呃,它也是一个带边框的, 就是,呃,关于 q o e 的。 带个边框,然后可以设置边框它,呃,可以设置一个边框,那个标题,还有边框的样式大小什么的。 screw a rear。 啊,你说的是这个吗?是 它有个标题,你说反了吧,你说的是 q freedom 吧?啊? q freedom 是 它,它有,它有边框,然后啊 square area, 它也有边框,嗯,好,它,它还它还有自己的那个标题嘛, 可以设置边框的标创口的标题 s k ray, 而瑞尔的最核心的特点是啥?呃,可以添加反光啊, s k ray, s k ray 最大的特点是什么?滚动滚动区域嘛?它是滚动窗口。啊 啊啊,你刚才说那些,我说感觉你像说的像 q frame 呀啊? q frame 是 带边框的 q 微机?对啊,你刚才说的一堆不是色子专框边框的样式啥的。那不是 q frame 这个窗口有吗? 可以,那是 girl boss 吧你说的。哦忘忘了那个。嗯,还有还有最后一个是什么?这个的微机啊,它是占位型的窗口啊,它也可以存储 窗口。呃。多个子窗口,然后但是他呃他可以从中多个子窗口,但是他只能显示其中一个子窗口,呃他没有自己的那个,就是调用其他子窗口的那个按钮或者是标间之类的, 只能通过程序去控制。嗯做到就成功了。按钮按钮什么呀? 就是可以调用子窗口,可以调用子窗口打开。大家明白你说的啥意思,但是不够精准,然后大家感觉一下他说的咋样?整体评价一下感觉咋样。嗯整体 也算还行啊,还是说的时候像这种这种问题啊大家也需要留意一下,就是有的时候他可能说没有去问你这个固定问题,面试的时候他有可能是考验你的这个姿势面,你看我们这个容器类型的空间, 我们不是说让你去讲某一个空间,他是不是考验一下你对呃所有这个容器类型空间的一个了解,所以说这个时候呢,其实说某一个的时候,当然你要是能说的更精准那是更好的, 对吧?但如果说说的不够精准的话那就是把这个大面上的东西都能说出来,那也还行,就是一定要保证整个表达要比较流畅一些啊。这个东西 你像 qbt 的, 刚才他刚才介绍的啥都没问题啊,就说这个 api 的 时候说了个什么豆子是吧?啊?这个是 api, 没毛病。 但是,但是,但是我说你对这个容器类型空间的这个了解,原来它里面能够设置怎么样的属性?就说它是窗口类吗?窗口类的鸡类,所以它可以设置这个窗口的大小啊,尺寸,这些是不是属性啊?你不要光说这个方法啊, 大小尺寸包括一堆这个最最大窗口,最小窗口,包括这个位置,窗口移动字体等等,这些相关的属性它其实都可以设置,那就说明我们所有的这个窗口类基本上都是这个 qv 的 类的这个子类吧。 也就是说呢,你 q v t 类它所具备的一些属性特点,那它这个子类是不是基本上都具备?所以主要的核心点在于啥呢?你把 q v t 的 这个类的一些属性特点说完之后,那后续剩余的你像标题啊,什么什么东西的,你就不用再强调了,因为但凡它的子类,它是不是里边都可以设置标题 啊?他都能设置,但,但就是说因为子类,我们说过子类相当于是不是对父类的功能的一个扩展性。二、对父类功能扩展性。所以说你在说子类的时候,你把刚才我这句话带上之后,后续再说的就是他每一个子窗口他各自 具备什么样的这个特性就行了,相当有意思吧。比如说你像那个 q freedom, 他的特点是不是能色边框?嗯?呃, girlbox, 他 说他的特点是啥?他是一个组合框,他能把一系列的空间相对于是不是组合到一块啊,让你的页面看起来更加的规整。 这个 square array, 它是这个滚动条,也就是当当这个窗口中显示内容过多的时候,它会自动出现 竖向的或者说横向的这个滚动条,不至于说让这个窗口被裁剪,也许内容显示不出来什么样的,他不至于出现这种问题啊。那 two box, 那 就是抽屉,这个抽屉,抽屉类型的一个窗口显示的这个盒子啊, table vita, table vita, 这个是带有选项卡或者说标签页的这个,呃,窗口显示区域啊,每一个标签页里面是可以对应放入一个这个主窗口啊。 bug vita 这个东西简单一提就行了,这个是一个占堆叠窗口 啊,这很多窗口现在是在一块区域显示的。那只不过说像别的窗口一样,就是也是一块区域显示,但你点击的时候呢,它有类似的这种切换动作,那这个 stock 的 微机呢?其实最终展示效果也差不多啊,所以说他们这种就没有什么太没有什么太 容易值得说的这个特点啊。那说明各种窗口类,你像这个,呃, table visit, stack visit, 以及这个 two box, 像这些东西呢,就是你用到哪个,你想要什么样的样式,你在你的这个 q t 界面上搭建成什么样的样式就可以,最 终的这个用哪个,是不还是根据你的需求来用啊?因为它们的核心本质那都是窗口嘛,就用来显示一些内容的这个区域嘛,对不对啊?好, ok。