• 18491阅读
  • 17回复

111 [复制链接]

上一主题 下一主题
离线rekols
 

只看楼主 倒序阅读 楼主  发表于: 2017-10-29
1111
1条评分金钱+1
music010 金钱 +1 优秀文章,支持!n神马都是浮云 2018-02-09
离线rekols

只看该作者 1楼 发表于: 2017-10-29
这种方法比起来更省资源
离线liuchangyin

只看该作者 2楼 发表于: 2017-10-29
离线liudianwu

只看该作者 3楼 发表于: 2017-10-29
用 repaint();很容易引起崩溃的,尤其是频繁刷新界面的情况下,基本上不建议用 repaint();,建议用update();
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线rekols

只看该作者 4楼 发表于: 2017-10-29
回 liudianwu 的帖子
liudianwu:用 repaint();很容易引起崩溃的,尤其是频繁刷新界面的情况下,基本上不建议用 repaint();,建议用update(); (2017-10-29 19:52) 

谢谢指导
离线九重水

只看该作者 5楼 发表于: 2017-10-29
  
离线msccreater

只看该作者 6楼 发表于: 2017-10-30
我比较在意楼主用的什么系统?感觉很好看
离线rekols

只看该作者 7楼 发表于: 2017-10-30
回 msccreater 的帖子
msccreater:我比较在意楼主用的什么系统?感觉很好看 (2017-10-30 09:54) 

deepin.org
离线stlcours

只看该作者 8楼 发表于: 2017-10-30
回 liudianwu 的帖子
liudianwu:用 repaint();很容易引起崩溃的,尤其是频繁刷新界面的情况下,基本上不建议用 repaint();,建议用update(); (2017-10-29 19:52) 

原理是啥?照理说,update是直接调用刷新函数,太忙的时候,才容易崩溃。为什么反而是repaint有这个问题?
离线liudianwu

只看该作者 9楼 发表于: 2017-10-30
回 stlcours 的帖子
stlcours:原理是啥?照理说,update是直接调用刷新函数,太忙的时候,才容易崩溃。为什么反而是repaint有这个问题? (2017-10-30 16:30) 

repaint是强制刷新,不管死活的,update是放入事件队列,让qt事件机制去处理。repaint频率过高很容易崩掉的。可自行看qt帮助文档!
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线stlcours

只看该作者 10楼 发表于: 2017-10-30
回 liudianwu 的帖子
liudianwu:repaint是强制刷新,不管死活的,update是放入事件队列,让qt事件机制去处理。repaint频率过高很容易崩掉的。可自行看qt帮助文档! (2017-10-30 17:12) 

看了,与你说的正好相反:

void QWidget::repaint()

Repaints the widget directly by calling paintEvent() immediately, unless updates are disabled or the widget is hidden.

We suggest only using repaint() if you need an immediate repaint, for example during animation. In almost all circumstances update() is better, as it permits Qt to optimize for speed and minimize flicker.

Warning: If you call repaint() in a function which may itself be called from paintEvent(), you may get infinite recursion. The update() function never causes recursion.

http://doc.qt.io/qt-5/qwidget.html#repaint
离线liudianwu

只看该作者 11楼 发表于: 2017-10-30
回 stlcours 的帖子
stlcours:
看了,与你说的正好相反:
void QWidget::repaint()
.......

你啥英文水平?能不能有点常识!你看过Qt内部控件的源码么?
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线hehui

只看该作者 12楼 发表于: 2017-11-01
回 stlcours 的帖子
stlcours:看了,与你说的正好相反:
void QWidget::repaint()
....... (2017-10-30 19:24) 

如无必要不要用repaint,用update!!!!!!!!!
repaint会强制更新,而update用了事件队列有优化,会忽略一些不必要的更新操作!
离线rekols

只看该作者 13楼 发表于: 2017-11-02
回 hehui 的帖子
hehui:如无必要不要用repaint,用update!!!!!!!!!
repaint会强制更新,而update用了事件队列有优化,会忽略一些不必要的更新操作! (2017-11-01 19:12) 

谢谢你们两的提醒。
离线hunterzf

只看该作者 14楼 发表于: 2017-11-05
不错,还能用,谢谢
离线music010

只看该作者 15楼 发表于: 2018-02-09
优秀文章,支持!n神马都是浮云
离线q小玩家

只看该作者 16楼 发表于: 2018-03-03
          
离线sunnyhyh

只看该作者 17楼 发表于: 2019-07-22
图标加上比较贴切。。。
快速回复
限100 字节
 
上一个 下一个