QT文章列表

耗时操作

QApplication::processEvents()

使QT现在就去更新界面各个控件的大小等等,完成界面刷新。但是这时候你操作了界面,比如按下了某个下拉按钮,这时候你的后台动作就会被暂停,直到界面下拉按钮全都缩回去之后,你的后台动作才会继续接着执行。

等于是在程序执行的过程中边执行,边抽取一点时间去更新界面。从而使得下面的一些函数立即得到执行。

QApplication::processEvents();//让界面可以及时更新

如果你后面有个写文件很费时的操作,这样以来用户界面可以变化,支持用户继续操作;但是用户可能又点击了保存文件的操作。这时候你可以调用另一个来让用户不假死,但是不接受用户输入(你对界面点了也白点):

QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);//它可以忽略用户的输入(鼠标和键盘事件)。

resizeEvent

virtual void resizeEvent(QResizeEvent *event);

窗口对象的大小改变的时候会自动调用这个函数,不需要手动调用;你只需要重写这个函数,就可以在这个函数内部得到最新的窗口大小

void MainWindow::resizeEvent(QResizeEvent* event)

{

QMainWindow::resizeEvent(event);

// Your code here

}

update

repaint

void QWidget::repaint ( int x, int y, int w, int h, bool erase = TRUE ) [槽]

通过立即调用paintEvent()来直接重新绘制窗口部件,如果erase为真,Qt在paintEvent()调用之前擦除区域 (x,y,w,h)。 如果w是负数,它被width()-x替换,并且如果h是负数,它被height()-y替换。 如果你需要立即重新绘制,建议使用repaint(),比如在动画期间。在绝大多数情况下,update()更好,因为它允许Qt来优化速度并且防止闪 烁。 警告:如果你在一个函数中调用repaint(),而它自己又被paintEvent()调用,你也许会看到无线循环。update()函数从来不会产生 循环。

paintEvent

void QWidget::paintEvent(QPaintEvent *event)

重绘的时候会自动调用这个函数,不需要手动调用。例如,窗口被遮挡就会调用这个函数;update等函数也会触发,但是不一定是直接响应,因为QT会合并多个为一个,减少不必要的重绘;重绘往往会先擦除背景;这个函数是protected的,所以你无法直接调用;

当绘制事件发生,更新区域通常被擦除。这里有一些例外,通过QPaintEvent::erased()可以得知这个窗口部件是否被擦除。

调用关系

update()->repaint()->paintEvent()

1. update()函数,实质上是调用了repaint函数,但是不是同步的,就是repaint函数可能不会立即执行。调用多次update()可能只执行了一次repaint()函数。

绘制加速

Qt::WA_StaticContents的作用

界面Position

qt repaint 用法_QT 界面绘制刷新机制相关推荐

  1. qt repaint 用法_Qt重绘之update,repaint详解

    Qt里面的重绘和Windows编程里面的重绘差不多.但是Qt的重绘更有特色,更加智能. 在讲之前,先说说paintEvent() paintEvent()是一个虚函数槽(slot),子类可以对父类的p ...

  2. qt repaint 用法_Qt 中update()和repaint()的区别

    void QWidget::repaint ( int x, int y, int w, int h, bool erase = TRUE ) [槽] 通过立即调用paintEvent()来直接重新绘 ...

  3. qt repaint 用法_Qt常用函数 记录(update erase repaint 的区别)

    一界面重载函数 使用方法: 1在头文件里定义函数 protected: void paintEvent(QPaintEvent *event); 2 在CPP内直接重载 void ---------- ...

  4. qt repaint 用法_qt的update与repaint

    一直搞不明白,qt的update与repaint的区别.虽然文档上说得貌似很明了了.但是,不看看源码,用着用着就迷糊了.今天看了下下相关的源码,记下自己的一点心得的. 1.update到paintEv ...

  5. qt repaint 用法_Qt重绘之update,repaint详解(转)

    Qt里面的重绘和Windows编程里面的重绘差不多.但是Qt的重绘更有特色,更加智能. 在讲之前,先说说paintEvent() paintEvent()是一个虚函数槽(slot),子类可以对父类的p ...

  6. qt repaint 用法_qt的repaint的问题

    qt的repaint的问题 在网上找了个qt刷屏的程序, 下面是主要代码,在main函数中调用showSlot程序,以便读取图形文件,但是遇到了奇怪的问题, 程序在linux PC端运行良好,用的是u ...

  7. qt repaint 用法_关于Qt 中update()和repaint()的区别

    void QWidget::repaint ( int x, int y, int w, int h, bool erase = TRUE ) [槽] 通过立即调用paintEvent()来直接重新绘 ...

  8. UI5界面绘制的机制,以及老旧dom节点的清除机制

    Created by Wang, Jerry, last modified on May 21, 2016 今天在看UI5 render的机制,发现在clear老的dom node的时候,是一个一个r ...

  9. Qt QGraphics体系及刷新机制介绍

    概述 Qt的三大体系:QWidget.QGraphics.Quick,其中QGraphics图形框架算是这三个中比较高级的一种用法了,并且使用起来相比另外两个体系会更加的复杂一些,不过它能实现的功能却 ...

  10. Android刷新机制-View绘制原理

    Android刷新机制-View绘制原理 Android刷新机制-SurfaceFlinger原理 Android刷新机制-Choreographer原理 一.概述 本文将从startActivity ...

最新文章

  1. css3 渐变色 3种,css3实现渐变色文字的三种方法
  2. 电影编码JPEG2000与H.264
  3. HBase + SpringBoot分布式文件存储实战(一)-简介
  4. 基于.NetCore3.1系列 —— 认证授权方案之授权揭秘 (下篇)
  5. 在石家庄扣完五险一金到手5000,算什么水平?
  6. 【SSH】——Hibernate实现简单的自动建表
  7. 视频分享:挨踢项目求生法则(2)——战略篇
  8. 正则表达式之位置匹配
  9. 第九届蓝桥杯省赛C/C++本科B组真题解析
  10. tensorflow2.0 实现自动写诗
  11. 通过bootstrap4框架制作商城网页
  12. GeForce GTX 1050-2G驱动安装
  13. LAMP源码环境搭建
  14. 最简单的无线充电传输电路
  15. 美术 2.7 Metallic与Speculer流程
  16. 内核与驱动文件的version magic匹配问题
  17. Windows NT引导过程源代码分析
  18. 简单又复杂的三层网络转发技术
  19. MySQL常见的面试经典108题
  20. 智能自动写原创文章的软件

热门文章

  1. php车牌输入,微信小程序车牌号码模拟键盘输入功能的实现代码
  2. Js字符串转json
  3. 舵机的相关原理与控制原理
  4. 高仿QQ举报网页和举报成功网站页源码
  5. 9个完整android开源app项目
  6. HTML资产负债表和收入支出表(可动态更新)
  7. 音视频直播推流和拉流到底是什么意思?
  8. 【毕设教程】ESP8266 WiFi 模块介绍和使用
  9. Sketch使用教程(四)
  10. C#试玩程序设计试题——定向越野(迷宫)