QT 绘图完成后UI界面卡顿,无响应

刚接触qt,用UI在主线程中绘图,绘图过程没卡死,绘图完成不能动UI,移动会卡死。
求解决方法

0

3个回答

帖下代码。帖绘制部分的代码

0
erd8888
IMVector QPainter p(this); for(int i=0;i<1000;i++) for(int j=0;j<600;j++) { p.setPen(QColor(255,255,0,255)); p.drawPoint(i,j); }
2 年多之前 回复
QPainter p(this);

for(int i=0;i<1000;i++)
for(int j=0;j<600;j++)
{
p.setPen(QColor(255,255,0,255));
p.drawPoint(i,j);
}

0
manjiao4651538
MJZ0508 重载一下paintEvent函数,把这部分代码放这个函数里面,然后需要更新时再调用update()一下试试
2 年多之前 回复
erd8888
IMVector 回复lx624909677: 用时好几秒,有没有好办法能解决?被这个问题困扰好长时间了
2 年多之前 回复
lx624909677
lx624909677 加个测试代码,看下这个绘制的循环用了多久绘制完成,每次移动窗口,都会走这个代码,如果绘制时间过长,主界面就会卡死
2 年多之前 回复

不知道为什么你会有这种需求,一次画600*1000个点。。。。。
你可以把这些点另起线程生成图像,然后图像传递给主线程 直接加载image'绘图

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
QT技巧 - 如何让主界面不卡顿
QT技巧 - 如何让主界面不卡顿 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:12951803 目录 QT技巧 - 如何让主界面不卡顿 1.核心思想 2.流程级解释 3.代码级解释 1.继承QThread 2.继承QRunable 3.使用QtConcurrent 环境: QT版本:5.6.2 编译器:V...
QT GUI界面假死的处理
在GUI程序中,主线程也叫GUI线程,因为它是唯一被允许执行GUI相关操作的线程。对于一些耗时的操作,如果放在主线程中,就是出现界面无法响应的问题。这种问题的解决一种方式是,把这些耗时操作放到次线程中,还有一种比较简单的方法:在处理耗时操作中频繁调用QApplication::processEvents()。这个函数告诉Qt去处理那些还没有被处理的各类事件,然后再把控制权返还给调用者。
QT学习一之画板制作(解决绘画卡顿)
    hello,大家好。    本人学习了一段时间的Qt,今天在公司电视大屏有个画板工具功能,灵机一动制作一个简易的画板程序。    本文主要介绍如何采用QWidget,QPainter制作画板。    画板功能:全屏无边框画板,支持手绘,右键(偷懒= -0- =)擦除。    开发工具:Qt5.9.5 Vs2015       (没用到什么高级功能,其他版本的也应该支持- 0 -)    程...
qt界面崩溃与假死问题
在开发图表项目时,项目要求如下: 同时打开100多个图表,单个图表的数据5W左右,结果图表出现了崩溃与假死的现象,每天好几次,不是必定出现现象,有的电脑未出现,有的电脑出现频繁 尝试了以下方式去解决问题: 首先出现了崩溃的现象 1.认为是历史修改代码导致,则通过svn查看历史版本的log,注释掉关键的代码继续测试 仍然崩溃 2.猜测是指针或者内存使用问题,则利用dbughelp配置在项
QT多线程—主界面卡死解决方案
由于耗时的操作会独占系统cpu资源 ,让界面卡死在那里,这时需要考虑多线程方案,将耗时的操作放在主线程之外的线程中执行。 但是必须注意:主界面更新只能在主线程中,耗时操作可以放在新建的线程中。
PythonQT界面卡死问题
针对一运行就时间长,有延时的方法就卡死问题,可以用进程、线程、进程池多种办法来解决,让界面进程和时间长有延时的进程分开运行,就可以避免运行时界面卡死的问题下面是我写的demo,供参考# -*- coding: utf-8 -*-&quot;&quot;&quot;Module implementing MainWindow.&quot;&quot;&quot;from PyQt4.QtGui import QMainWindowfrom PyQt4.QtC...
性能优化之UI卡顿排查与解决
性能优化之过度绘制 过度绘制监测: 打开开发者选项的 显示过度绘制 原色:没有过度绘制 蓝色:1 次过度绘制 绿色:2 次过度绘制 粉色:3 次过度绘制 红色:4 次及以上过度绘制 优化策略: 1 若你的界面有自己的背景覆盖了全屏,则可以去除Activity自带的背景色 &amp;amp;lt;style name=&amp;quot;AppTheme&amp;quot; parent=&amp;quot;android:Theme.Li...
有关PyQt界面卡顿的解决方案大全
1、【整理】【分享】有关PyQt界面卡顿的解决方案大全
wpf中防止界面卡死的写法
原文:wpf中防止界面卡死的写法View Code this.button1.Content = &quot;正在计算&quot;; Action action = new Action(() =&amp;gt; { System.Threading.Thread.Sleep(3000); this.Dispatcher.BeginI...
在UI界面中调用QProcess中的waitForStarted()造成ui不响应
在UI界面中调用QProcess中的waitForStarted()造成ui不响应         案例:在UI界面中,当按下按钮时,利用QProcess调用外部程序下载hex文件到arduino板子上;       然而,在使用waitForStarted()检测进程是否开始后,在它之后的语句可以执行,但需要显示到UI界面的信息却显示不了,这是因为waitForStarted()造成了当前U
解决QT读取串口数据,实时刷新界面卡死问题
串口读过来的数据显示到QT界面上时,界面被卡住了,想用多线程,查看网上方法不详细,但大体思路是对的,采用下面的方案1: 1)在主界面线程中写界面显示处理方法 2)在新线程中发送消息给该方法 结果,还是卡,于是修改为下面的方法: 1)把要显示的数据的控件moveToThread到新线程 2)发送消息调用控件方法 结果,问题解决了 思考:如果不通过信号,而是直接调用控件方法呢?   ...
Qt中针对比较耗时的工作防止界面假死的处理方式
Qt中对于一些比较耗时的工作,如下载数据的同步操作,可能会使主线程处于等待状态,导致界面假死,针对此种情况,我们可以使用一个定时器和人工进行事件循环代码如下: m_nTimerID = startTimer(500);  while (!m_bFileDownloaded)       {            QCoreApplication::processEvents(QEvent
Qt软件在看代码的时候有时候出现界面变灰无响应问题解决办法
问题描述:在Ubuntu16.04使用Qt5.7看代码的时候界面变灰无响应,需要等一会才能正常操作解决办法:删除Qt项目配置文件rm -rf .config/QtProject
VS调试C#程序时,UI界面非常卡
已经是第二次遇到这种问题了,出现问题的原因可能是加入了新控件,添加新引用导致的(直接多个DLL放在debug文件夹下),通过reset了VS之后,再清理解决方案、重新生成,之后再调试就解决了UI卡顿、点击控件进行切换界面时加载缓慢的问题。 参考地址: https://www.cnblogs.com/licin/p/6141167.html...
PyQt5多线程刷新界面防假死
在做GUI界面时我们希望后台任务能够与UI分开,在PyQt中,主线程用来重绘界面。而子线程里边的实时处理结果需要反馈到界面,子线程里边不能执行界面更新操作。 wxpython多线程刷新界面转到 http://www.omegaxyz.com/2017/10/31/wxpython_thread_sendmessage/ 下面给出类Python3+PyQt5多线程防假死动态刷新界面的模板 from ...
在更换电脑运行vs的qt程序时,.ui文件一点开就会卡死的问题解决
前段时间用QT写界面,在换了一台电脑跑代码的时候,发现一点.ui文件,整个ui文件就会卡死。百度关于这个的答案好少,但朋友表示他们都遇到过。后来还都是从这篇博文里找到的解决方法 ——http://blog.csdn.net/TTendy/article/details/76599409     这里记录一下,在QT的目录下,找到Qt5WebEngineWidgets.dll这个文件,给他随便改
当socket连接主推数据刷新频繁造成UI界面卡顿的一些思考
问题原因是有个点差列表的界面,前期是自己socket工具封装自己代码的失误,造成数据源data不断追加,比较专业的行情数据,都会定义规范的结构体,会返回当前数据包的长度,次数在于数据处理时可以处理一部分抛除一部分,但是本人实际项目中只是简单地返回的字符串的data数据,这样就算socket断包,我们也不方便处理,所以就简单地每次只处理接受的数据,(更合理的...
Android UI线程时间多少毫秒才不会卡顿
人眼的原因, 1秒24帧的动画才能感到顺畅. 所以每帧的时间大概有41ms多一点点(1000ms/24). 但是但是, 注意了, 这41ms不是全都留给你Java代码, 而是所有java native 屏幕等等的, 最后留给我们用java级别发挥的时间, 只有16~17ms了.所以,当你优化视觉效果时,留意UI线程的时间, 超过16ms, 就需要处理了.
解决卡顿——在WPF中使用多线程更新UI
 解决卡顿——在WPF中使用多线程更新UI 有经验的程序员们都知道:不能在UI线程上进行耗时操作,那样会造成界面卡顿,如下就是一个简单的示例:     public partial class MainWindow : Window     {         public MainWindow()         {             InitializeCo
UI卡顿检测的两种方法
前言:我们都知道android开发负责的就是移动端用户与界面的交互,是用户和后端的桥梁,一个美观,流畅的界面大大提高用户的操作体验。但在一些情况下,炫酷的界面布局,复杂的动画或者自定义控件的绘制会造成一定的UI卡顿,这与我们设计的原则是相悖的。那么,造成UI卡顿的原因无非也就那几种,重要的是怎么检测是哪个地方造成了界面卡顿。造成卡顿有可能发生在XML文件中,也可能是我们代码中的逻辑太复杂造成的,那...
关于主线程阻塞导致界面卡顿问题总结
遇到的问题 一个界面里面执行了刷新和一个动画效果,当动画效果执行完之后会对界面进行重新绘制,这个时候会出现卡顿现象。 解决问题 经多次查看,问题不出在动画上,是动画执行完毕之后更新一个textView里的内容,这个textView宽高是wrapContent的,所以,当更新textView内容的时候会重新绘制textView的宽高,导致了主线程阻塞,出现卡顿。 解决方法:将此textView
Android Ui卡顿检测
好久没来写技术博客了,惭愧惭愧,因为前段时间在忙其他一些事情,这段时间稍微时间松了点,赶快来补写下技术博客,可不能荒废了。 今天介绍的技术是一个很简单,但是确实有用的东西。众所周知,做android开发的应该都知道UI线程这个东西吧,UI线程顾名思义就是用来执行渲染UI相关操作的,为了良好的用户体验,在UI线程上的任何操作就是要快,不然操作5s就会anr哦。从代码级别来说,UI线程的快速响应可以简
iOS界面卡顿优化:Instrument 调试界面卡顿(更新:离屏渲染)
更新:2018.4.20关于离屏渲染的详细介绍:iOS&quot;离屏渲染&quot;整理总结离屏渲染优化详解:离屏渲染优化详解:实例示范+性能测试前言工欲善其事,必先利其器。Instrument对于iOS开发来说,是发现并且解决问题的一把利器。本文会用到的两个工具包括:Time Profiler(获取代码运行时间,一般用来看CPU占用)Core Animation(获取图形绘制情况,FPS,离屏渲染等)界面显示的原...
QT 刷新界面时假死
我们知道,在进行费时的操作时,比如从网络读取数据,从本地数据库读取数据等,为了避免界面卡死,把这些操作放到线程里处理。 待处理完毕后,通过信号槽函数机制通知到 UI 线程进行数据刷新。可有时候设置比较复杂的界面时,比如树控件,数据量较大时,又需要递归写入数据,需要排序等复杂逻辑,导致刷新的时候界面就会卡死一阵子。 那么为了避免这种情况,有个很简单的处理方式。 那就是在循环里面,每次插入数据后...
客户端程序无响应,卡死,卡顿了?抓个dump看下卡在哪里了。
客户端程序无响应,卡死,卡顿了?抓个dump看下卡在哪里了。原文链接工具下载链接为什么会无响应windows的客户端程序一般都有一个主线程来处理消息,一般都在winmain函数中实现。主线程根据不同的消息做不同的任务,可以打开一个新的对话框,创建一个新线程等。用户的任何点击(鼠标),滚动(滚动条)操作,都会封装成一个消息,最终传给这个线程来处理。如果,这个线程在某个消息响应中,调用了一个阻塞或很耗时
Android UI卡顿原因及解决办法
渲染机制介绍 为了分析UI卡顿,我们有必要理解一下渲染机制,这套渲染机制适用于绝大部分的屏幕渲染,其中包括Android手机等众多屏幕设备。 一些参数 先来举个例子,电源胶卷时代播放的电影是24帧/秒,也就是说一秒有24张胶片进行播放,这是早期的设定,比较低,因为交卷比较贵。随着科学技术的发展,屏幕的刷新速度有了一个质的飞跃。 渲染的一些重要参数: 屏幕刷新理想的频率(硬件的角度
C# Winform 多线程更新界面UI控件,解决界面卡顿问题
前言 多线程刷新界面主要用到多线程,委托,线程安全、事件等一系列高难度的C#操作。 1、使用timer控件对要刷新的控件进行定时刷新 对刷新频率要求不高的时候,可以使用该方法。 2、刷新UI控件 在开发软件时经常会需要更新界面上的某个控件来显示相关的信息,为了让程序执行中不出现界面卡死的现像,最好的方法就是“多线程+委托”来解决。 控件:...
最简单解决c#在UI线程中执行耗时方法导致界面假死的方法
int sta = my_connect.login(_user_name, _password);如上,login方法中通过http向服务器发请求,在网络状况不好或者服务器繁忙的时候,会因为迟迟等不到返回结果导致页面假死。解决办法:int sta = await Task.Run(() => { return my_connect.logi
由于线程问题导致界面卡死
子线程请求数据、主线程刷新UI、这句话,已经说了无数次,然而今天还是在这里掉进了坑,看着日渐稀疏的秀发,还是记录下吧, 首先,如果我的网络请求完成之后直接[self.tableView reloadData],那么界面卡的不要不要的, dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_P...
QT编程时,,界面不阻塞立刻显示
1.问题描述: QT项目中,发现界面调用show()之后,并不能直接显示出界面,需要等msleep(3000)执行完以后,才可以。 MainWindow w; w.show(); QThread::msleep( 3000 ); return a.exec 2.原因分析: QThread.msleep(3000),占用了该线程
QT chart 更新越来慢,卡成狗
最近用QT 写 了个上位机,跑起来后,chart更新越来越慢 最后卡成PPT一样。不知道什么 原因造成的(我是新手)
Android APP UI卡顿的原理
一、卡顿(Jank)的定义   Android团队把滞缓,不流畅的动画定义为卡顿(jank),一般是由于丢帧引起的。从Android诞生的第一天直到现在的8核CPU,Android始终未能摆脱卡顿的问题。在Android APP的性能测试中卡顿测试是非常重要的一部分。   二、Android的&quot;16ms&quot;原则   Android系统每隔16ms会发出VSYNC信号重绘我们的界面(A...
Android UI性能优化 检测应用中的UI卡顿
本文已在我的公众号hongyangAndroid首发。 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/58626355本文出自张鸿洋的博客 一、概述 在做app性能优化的时候,大家都希望能够写出丝滑的UI界面,以前写过一篇博客,主要是基于Google当时发布的性能优化典范,主要提供一些UI优化性能示例:
qt延时之界面“假死”问题
转载自:https://blog.csdn.net/xiezhongyuan07/article/details/81169583 在Qt程序中,我们有时候会遇到这样的需求,比如让程序暂停(休息、休眠)一段时间, 这段时间里可能程序什么都不做, 也可能是在后台开了个子线程在做一些用户看不见的工作。 最开始我需要这样的需求时候,我第一反应想到的是在QT Assistant 中搜索sleep方法,...
C#多线程解决界面卡死问题的完美解决方案_极简版
C#多线程解决界面卡死问题的完美解决方案,简化了之前的写法,更容易记住和理解
C#.网络编程 Socket基础(六)WPF工程 UI界面卡顿问题及其解决办法、UI界面没有卡顿,第二次实例化导致UI界面不能更新界面问题及其解决办法
简介: 本文将介绍简单、复杂的卡顿问题(本文的复杂卡顿问题,表现在UI不能更新)。 一、简单卡顿问题及其解决方法,请参考我的另一篇博文  C#.网络编程 Socket基础(四) WPF系统Socket TCP协议 服务器与客户端 不同类型文件传输,解决UI线程(异步委托)与工作线程的卡顿问题 设计思路  主线程——&amp;gt;实例化——&amp;gt;次线程——&amp;gt;在次线程中,直接用实例更新到主线...
Android性能优化之UI卡顿优化
Android应用性能优化 性能优化分类 卡顿优化 内存优化 电量优化 网络优化 启动优化、安装包体积优化 官网性能优化指导(https://developer.android.com/topic/performance/index.html) 卡顿优化 卡顿:从用户角度说,App操作起来缓慢,响应不及时,列表滑动一顿一顿的,动画刷新不流畅等等一些直观感受。从系统角度来说,屏...
WPFC#.net 跨线程更新UI 线程测试 解决界面卡死
Demo测试跨线更新UI 第一种 : Thread 达到跨线程更新UI 虽然使用Dispatcher.Invoke 和模拟winform 里面的DoEvent 但是运行中关闭还是会有异常,而且耗资源高; 第二种 : DispatcherTimer 失败:UI还是会卡顿; 第三种 : Timer 建议使用、资源占用少,关闭启动自如。
qt 多线程 防止主线程做循环操作导致界面假死
qt 多线程 防止主线程做循环操作导致界面假死。试过多线程的几种方法,只有这个方法可行。代码亲测可行。在子线程死循环,界面正常不死!!!
QT中线程qthread运行导致卡顿解决办法
QT中线程qthread运行导致卡顿解决办法: 要把无限循环的函数放到run函数里面,同时 msleep 几毫秒。
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 卡弗卡大数据免费视频 java 机器学习绘图