首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

顺丰科技QT面试题「建议收藏」

举几个例子?还有其他的? 你觉得自定义控件的方法主要是哪些?...答:从外观设计上:QSS、继承绘制函数、继承QStyle相关类、组合拼装等等 从功能行为上:重写事件函数、添加或者修改信号和槽等等 QSS: QSS平时使用的多举几个例子?...常见的QT事件类型如下: 键盘事件: 按键按下和松开 鼠标事件: 鼠标移动,鼠标按键的按下和松开 拖放事件: 用鼠标进行拖放 滚轮事件: 鼠标滚轮滚动 屏事件: 屏幕的某些部分...大致描述下? 答:根据对Qt事件机制的分析, 我们可以得到5种级别的事件过滤,处理办法. 以功能从弱到强, 排列如下: 1)重载特定事件处理函数....通过重载event()函数,我们可以在事件被特定的事件处理函数处理之前(象keyPressEvent())处理它. 比如, 当我们想改变tab键的默认动作时,一般要重载这个函数.

73410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端网页性能提升的几点优化

    前者叫做”重排”(reflow),后者叫做””(repaint)。 需要注意的是,“”不一定需要”重排”,比如改变某个网页元素的颜色,就只会触发””,不会触发”重排”,因为布局没有改变。...但是,“重排”必然导致””,比如改变一个网页元素的位置,就会同时触发”重排”和””,因为布局改变了。 三、对于性能的影响 重排和会不断触发,这是不可避免的。...如果写得不好,就会触发两次重排和。...如果在指定 的这段时间之内,每一帧都没有空闲时间,那么函数fn将会强制执行。 requestIdleCallback(fn, 5000); 上面的代码表示,函数fn最迟会在5000毫秒之后执行。...函数 fn 可以接受一个 deadline 对象作为参数。

    1K20

    浏览器渲染之回流

    一般来说,我们会使用 JavaScript 来实现一些视觉变化的效果。比如用 jQuery 的 animate 函数一个动画、对一个数据集进行排序或者往页面里添加一些 DOM 元素等。...如何减少回流与 上面我们已经介绍了像素管道相关内容,知道回流和的代价是非常昂贵的,如果我们不停的在改变页面的布局,就会造成浏览器耗费大量的开销在进行页面的计算,对用户体验非常的不友好。...减少回流与前端性能优化重要手段之一。 减少强制同步布局 避免频繁读取会引发回流/的属性,如果确实需要多次使用,就用一个变量缓存起来。...该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次之前执行 使用 requestAnimationFrame 替代 setTimeout 或 setInterval 来执行动画之类的视觉变化...注意:不要在回调函数里调用会触发强制同步布局的属性或者方法 使用 requestIdleCallback window.requestIdleCallback() 方法将在浏览器的空闲时段内调用的函数排队

    1.7K40

    网页性能管理详解

    前者叫做"重排"(reflow),后者叫做""(repaint)。 需要注意的是,""不一定需要"重排",比如改变某个网页元素的颜色,就只会触发"",不会触发"重排",因为布局没有改变。...但是,"重排"必然导致"",比如改变一个网页元素的位置,就会同时触发"重排"和"",因为布局改变了。 三、对于性能的影响 重排和会不断触发,这是不可避免的。...如果写得不好,就会触发两次重排和。...如果在指定 的这段时间之内,每一帧都没有空闲时间,那么函数fn将会强制执行。 requestIdleCallback(fn, 5000); 上面的代码表示,函数fn最迟会在5000毫秒之后执行。...函数 fn 可以接受一个 deadline 对象作为参数。

    94290

    干货 | 如何实现小程序图片模糊预加载?

    ,(ps:我们是用nginx实现的动态压缩,裁剪等功能,有需要的小伙伴可以自行搜索相关教程~) 主要逻辑处理完成之后我们再来看模糊样式的处理,在此就要介绍一个 css 方法 blur():blur()...它只有一个接受一个参数blur(radius) 了解了这个方法之后,就让我们来愉快的玩耍(写代码)吧~ 我们可以给这个效果添加一个小动画,让它看起来更有意思哦~ ....image--not-loaded{ // fix ios 缺少的问题,添加无意义的transform强制触发 transform: scale(1); filter:blur(30px)...;}.image--is-loaded{ // fix ios 缺少的问题,添加无意义的transform强制触发 transform: scale(1); filter:blur(20px...,就是ios不会根据这个代码重新绘制页面因此不能正确展示,如果要解决这个问题只要给他加上一条没有意义的transform,强制触发就可以了~ 效果图如下: 5571f524-1f57-43da- 原文作者

    2.4K10

    requestAnimationFrame,终结定时器动画时代!

    传统动画实现 在我们前端的传统中,在古老的ie称霸的年代,我们想要实现动画,必须要借助setTimeout或setInterval这两个函数,下面我们来思考一个问题: 我们一个数字从0开始逐渐变大,到达...当然可行,完美?也还算完美,当突然发现新大陆以后,定时器便彻底被终结了,就比如,你用了苹果的Retina屏幕以后,发现再也回不去了是一个道理,你说1080p的屏幕完美?...告诉浏览器——你希望执行一个动画,并且要求浏览器在下次之前调用指定的回调函数更新动画。...该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次之前执行 requestAnimationFrame的优势是啥?...1、requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,在一次或回流中就完成,并且或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧。

    1.4K20

    制作60fps的高性能动画

    ; }, 1000 * 3); 以上的例子是,如果在等待触发延迟的3秒过程中,有人点击了body,那么回调还是准时在3s完成时触发? 实践执行的时候,它会等待10s,同步函数总是优先于异步函数。...基于这些问题我们提出了另一个解决方案:requestAnimationFrame(callback) window.requestAnimationFrame() 方法告诉浏览器您希望执行动画并请求浏览器在下一次之前调用指定的函数来更新动画...该方法使用一个回调函数作为参数,这个回调函数会在浏览器重之前调用。...-- MDN 当我们调用这个函数的时候,我们告诉它需要做两件事: 我们需要新的一帧; 当你渲染新的一帧时需要执行我传给你的回调函数 与 setTimeout 相比,rAF(requestAnimationFrame...这个环节和前一个步骤类似,浏览器会追踪脏元素,将它们合并到一个超大的矩形区域中。每一帧内只会发生一次,用于绘制这个被污染区域。 这个阶段对性能的影响主要在于

    2.8K40

    UI 刷新

    这里谈到到周期刷新,我们在进行view绘制的时候,会调用requestLayout进行重走一下measure,Layout,onDraw,那么此时调用10次requestLayout,会进行10次...答案是当然不会,因为如果调用10次requestLayout,那么在下次vsync信号来的时候并不会触发10次ui,在vsync周期中,只会触发一次界面。...,它首先向SurfaceFlinger请求下一个vsync信号,调用的就是requestNextVsync函数,然后SurfaceFlinger就会在下一个vsync信号来的时候,通过postSyncEvent...屏幕并不会立即刷新,需要等到下次vsync信号来的时候才会进行刷新 如果界面没有,还会每隔16ms刷新屏幕 如果界面没有进行,并不会收到vsync信号进行,但是屏幕还会每隔16ms进行...,不过用的数据是旧图像数据,看起来屏幕没有变化 如果在屏幕快要刷新的时候才会去绘制会丢帧 不会丢帧,调用,并不会马上执行,只是等到下次vsync信号来的时候才会执行,所以什么时候发起绘制操作没有太大关系

    2.1K30

    写让别人能读懂的代码+网页性能管理详解

    前者叫做"重排"(reflow),后者叫做""(repaint)。 需要注意的是,""不一定需要"重排",比如改变某个网页元素的颜色,就只会触发"",不会触发"重排",因为布局没有改变。...但是,"重排"必然导致"",比如改变一个网页元素的位置,就会同时触发"重排"和"",因为布局改变了。 三、对于性能的影响 重排和会不断触发,这是不可避免的。...如果写得不好,就会触发两次重排和。...第五条,先将元素设为display: none(需要1次重排和),然后对这个节点进行100次操作,最后再恢复显示(需要1次重排和)。...如果在指定 的这段时间之内,每一帧都没有空闲时间,那么函数fn将会强制执行。 requestIdleCallback(fn, 5000); 上面的代码表示,函数fn最迟会在5000毫秒之后执行。

    1.1K90

    前端面试之浏览器

    (Repaint): 当一个元素的外观发生改变,但没有改变布局,重新把元素外观绘制出来的过程,叫做。...,而相比之下重排的性能影响更大,在两者无法避免的情况下,一般我们宁可选择代价更小的。...『』不一定会出现『重排』,『重排』必然会出现『』。 如何触发重排和?...任何改变用来构建渲染树的信息都会导致一次重排或: 添加、删除、更新DOM节点 通过display: none隐藏一个DOM节点-触发重排和 通过visibility: hidden隐藏一个DOM...节点-只触发,因为没有几何变化 移动或者给页面中的DOM节点添加动画 添加一个样式表,调整样式属性 用户行为,例如调整窗口大小,改变字号,或者滚动。

    60920

    【Web动画】CSS3 3D 行星运转 && 浏览器渲染原理

    强烈建议你点进 Demo 页感受一下 CSS3 3D 的魅力,图片展现的东西毕竟有限。...在开发者工具中,我们进行如下选择调出 show layer borders 选项: ? 在一个极简单的页面,我们可以看到如下所示,这个页面只有一个层。...按照道理,页面发生这么多动画,应该很频繁才对,但是上图我的行星动画中我只看到了寥寥绿色框,我的个人理解是,一是 GPU 优化,二是如果整个动画页面只有一个层,那么运用了 transform 进行变换...了解层的对 Web 动画的性能优化至关重要。 是什么原因导致失效(invalidation)进而强制的呢?这个问题很难详尽回答,因为存在大量导致边界失效的情况。...这样就会让多次的回流、变成一次回流

    2.6K70

    网页性能分析

    前者叫做"重排"(reflow),后者叫做""(repaint) ""不一定需要"重排",比如改变某个网页元素的颜色,就只会触发"",不会触发"重排",因为布局没有改变。...但是,"重排"必然导致"",比如改变一个网页元素的位置,就会同时触发"重排"和"",因为布局改变了。...第五条,先将元素设为display: none(需要1次重排和),然后对这个节点进行100次操作,最后再恢复显示(需要1次重排和)。...如果在指定 的这段时间之内,每一帧都没有空闲时间,那么函数fn将会强制执行。 requestIdleCallback(fn, 5000); 上面的代码表示,函数fn最迟会在5000毫秒之后执行。...函数 fn 可以接受一个 deadline 对象作为参数。

    1K00

    你真的了解回流和

    回流和可以说是每一个web开发者都经常听到的两个词语,我也不例外,可是一直不是很清楚这两步具体做了什么事情。... 最终,我们通过构造渲染树和回流阶段,我们知道了哪些节点是可见的,以及可见节点的样式和具体的几何信息(位置、大小),那么我们就可以将渲染树的每个节点都转换为屏幕上的实际像素,这个阶段就叫做节点。...减少回流和 好了,到了我们今天的重头戏,前面说了这么多背景和理论知识,接下来让我们谈谈如何减少回流和。 最小化和重排 由于和重排可能代价比较昂贵,因此最好就是可以减少它的发生次数。...避免触发同步布局事件 上文我们说过,当我们访问元素的一些属性的时候,会导致浏览器强制清空队列,进行强制同步布局。...这个时候,只要我们点击一下那个按钮,把这个元素设置为绝对定位,帧数就可以稳定60。 css3硬件加速(GPU加速) 比起考虑如何减少回流我们更期望的是,根本不要回流

    1.3K21

    你真的了解回流和?(面试必问)

    回流和可以说是每一个web开发者都经常听到的两个词语,我也不例外,可是我之前一直不是很清楚这两步具体做了什么事情。...(如下图) 最终,我们通过构造渲染树和回流阶段,我们知道了哪些节点是可见的,以及可见节点的样式和具体的几何信息(位置、大小),那么我们就可以将渲染树的每个节点都转换为屏幕上的实际像素,这个阶段就叫做节点...减少回流和 好了,到了我们今天的重头戏,前面说了这么多背景和理论知识,接下来让我们谈谈如何减少回流和。 最小化和重排 由于和重排可能代价比较昂贵,因此最好就是可以减少它的发生次数。...避免触发同步布局事件 上文我们说过,当我们访问元素的一些属性的时候,会导致浏览器强制清空队列,进行强制同步布局。...这个时候,只要我们点击一下那个按钮,把这个元素设置为绝对定位,帧数就可以稳定60。 css3硬件加速(GPU加速) 比起考虑如何减少回流我们更期望的是,根本不要回流

    2.1K40

    前端性能优化 | 回流与

    一、回流与的概念在 HTML 中,每个元素都可以理解成一个盒子,在浏览器解析过程中,会涉及到回流与:回流(reflow):当DOM的结构发生改变或者某个元素的样式发生变化时,浏览器需要重新计算并重新布局...:当页面中某些元素的样式发生变化,但是不会影响其在文档流中的位置以下这些操作会导致修改元素的颜色、背景色、边框颜色等样式属性:例如,将一个元素的背景色由红色改为蓝色,这样只会引发元素的,而不会触发布局的改变...减少回流与的措施了解了回流与的触发条件,我们可以尽量避免不该有的操作,减少回流与,提高浏览器渲染性能使用CSS动画代替JavaScript动画:CSS动画是利用浏览器的硬件加速,性能更高效。...结语在本篇文章中,我们详细探索了浏览器的回流和,以及如何减少它们对页面性能的影响。回流和是由于对页面进行布局和渲染的过程中,浏览器需要重新计算元素的几何信息和重新绘制元素造成的。...我们学习到了回流和的定义和区别,以及触发回流和的常见操作。同时,我们提供了一些减少回流和的优化措施,如使用transform属性进行动画、使用position属性进行定位、缓存布局信息等。

    1.2K20

    和回流(Repaint & Reflow),如何优化

    回流一定会发生不一定会引发回流 4.浏览器优化 现代浏览器大多都通过队列机制来批量更新布局,浏览器会把修改操作放在队列中,至少一个浏览器刷新(16.6ms)才清空队列,但当你获取布局信息时,队列中可能存在影响这写属性和方法返回值的操作...,即使没有,浏览器也会强制清空队列,触发和回流来保证返回正确的值 主要有一下方法和属性 offsetTop、offsetLeft、offsetWidth、offsetHeight scrollTop...,他们都会强制渲染刷新队列。...5.减少与回流 1.css ....避免频繁读取会引发回流/的属性,如果确实需要多次使用,就用一个变量缓存起来。 对具有复杂动画的元素使用绝对定位,使它脱离文档流,否则会引起父元素及后续元素频繁回流。

    76710

    分享 | 前端性能优化(CSS动画篇)

    ?回流和布局?图层重组? 首先要了解CSS的图层的概念(Chrome浏览器) 浏览器在渲染一个页面时,会将页面分为很多个图层,图层有大有小,每个图层上有一个或多个节点。...所以这需要通过特殊的方式来强制gif图属于自己一个图层(translateZ(0)或者translate3d(0,0,0)),CSS3的动画也是一样(好在绝大部分情况浏览器自己会为CSS3动画的节点创建图层...而且CPU与GPU之间的有较大的带宽限制,所以纹理的上传需要一定时间 触发图层重组的属性 透明度竟然不会触发? 需要注意的是,上面那些触发的属性里面没有opacity(透明度),很奇怪不是?...取而代之的更好方法是使用translate,这个不会触发布局 JS动画和CSS3动画的比较 我们经常面临一个抉择:是使用JavaScript的动画还是使用CSS的动画,下面将对比一下这两种方式 JS动画...我们应该尽力避免使用会触发布局和的属性,以免失帧。最好提前申明动画,这样能让浏览器提前对动画进行优化。

    1.9K20

    你真的了解回流和

    回流和可以说是每一个web开发者都经常听到的两个词语,可是可能有很多人不是很清楚这两步具体做了什么事情。...(如下图) 最终,我们通过构造渲染树和回流阶段,我们知道了哪些节点是可见的,以及可见节点的样式和具体的几何信息(位置、大小),那么我们就可以将渲染树的每个节点都转换为屏幕上的实际像素,这个阶段就叫做节点...减少回流和 好了,到了我们今天的重头戏,前面说了这么多背景和理论知识,接下来让我们谈谈如何减少回流和。 最小化和重排 由于和重排可能代价比较昂贵,因此最好就是可以减少它的发生次数。...避免触发同步布局事件 上文我们说过,当我们访问元素的一些属性的时候,会导致浏览器强制清空队列,进行强制同步布局。...这个时候,只要我们点击一下那个按钮,把这个元素设置为绝对定位,帧数就可以稳定60。 css3硬件加速(GPU加速) 比起考虑如何减少回流我们更期望的是,根本不要回流

    4.9K50

    Web页面全链路性能优化指南

    Repaint 在Chrome Performance中叫做绘制,通常样式改变但没有影响位置时会触发操作,性能还好,但我们也需要尽量减少,如果需要做一些动画,我们尽量使用CSS3动画...,CSS3动画只需要在初始化时绘制一次,之后的动画都不会触发操作。...强制同步布局问题 在同一个函数内,修改元素后又获取元素的位置时会触发强制同步布局,影响渲染性能。...强制同步布局会使js强制将【计算样式】和【布局(重排)】操作提前到当前函数任务中,这样会导致每次运行时执行一次【计算样式】和【重排】,这样一定会影响页面渲染性能,而正常情况下【计算样式】和【重排】操作会在函数结束后统一执行...尽量用CSS3动画,CSS3动画最大程度减少重排与。 使用will-change: transform;将元素独立为一个单独的图层。

    1.7K10
    领券