出现这个错误的原因在于在次线程中执行主线程对象的一些操作引起的。
可以这样修改:
如果次线程需要更新主线程对象状态,需要发送消息,主线程对象接收后处理而不能在此线程中直接操作。
QT定时器非常好,只要注意跨线程问题
QT定时器线程相关的使用注意事项:
- 不能夸线程启动定时器和停止定时器
- 不能夸线程启动一个定时器关联的对象,但在另一个线程释放(析构)此和定时器关联的对象(相当于1>的情况不能在其他线程停止定时器).
qWarning(“QObject::killTimers:timers cannot be stopped from another thread”);
也就是定时器相关的逻辑和对象只能用在一个线程中.
因为QT的定时器有内部的数据结构来关联定时器相关逻辑.
否则:启动定时器的线程不能删除定时器,而定时器关联的对象已经不存在,那么下次定时器事件来时会崩溃.
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2020-06-23 Qt tableView设置不可编辑
2020-06-23 Qt 窗口的一些简单设置-标题、图标、最大化最小化按钮、任务栏图标
2020-06-23 Qt 让窗口屏幕居中的方法