社区
Qt
帖子详情
qlist奇葩问题
zhenimei100
2017-08-31 01:21:18
qlist用着用着,length返回-2.
我所有put和take的地方都加了打印。
发现是成对的,即qlist应该是空的。
但是去查询isempty,返回非空,然后打印长度显示-2.简直无语。
有人遇到过吗?
...全文
815
6
打赏
收藏
qlist奇葩问题
qlist用着用着,length返回-2. 我所有put和take的地方都加了打印。 发现是成对的,即qlist应该是空的。 但是去查询isempty,返回非空,然后打印长度显示-2.简直无语。 有人遇到过吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
donwmufromdying
2017-09-05
打赏
举报
回复
是否封装在一个类里不是重点,关键是,该类的对象是否只有一份.其次是,线程的开始和结束以及属于子线程的资源申请释放等等,都是有讲究的.在做多线程的编码前,最好画出每个线程的工作流程和不同线程之间的交互.如果你觉得QMutex不好用,也可以用std::mutex 甚至就用std::atomic
zhenimei100
2017-08-31
打赏
举报
回复
谢谢你的回答。 我就是这样做的:对数据封装成一个类, 让这个类提供方法来访问数据. 加锁就加在这个类里面。 可惜事与愿违。
大卫无限
2017-08-31
打赏
举报
回复
那就对咯, 多线程冲突或者内存访问出问题了.这种很难排查. 线程的操作本来就比较麻烦,容易出错. 而且Qt加入了新的线程使用方式, 和传统的线程使用方式有区别, 导致使用的时候容易出错. 其实Qt有两种线程处理方式, 大多数情况下不用自己加锁就可以很好的处理好线程的问题, 这种处理方式,就是队列模式的信号和槽. 还有一种就是传统意义上的线程处理方式, 就是一个线程就是一个函数, 数据需要自己去加锁进行保护. 介于多线程的复杂度, 可以使用一些简单的手段屏蔽一些问题. 比如多使用用拷贝, 而不是多个线程访问一个数据, 再比如对数据封装成一个类, 让这个类提供方法来访问数据. 加锁就加在这个类里面, 这样独立数据访问之后, 可以让逻辑更加清晰.
zhenimei100
2017-08-31
打赏
举报
回复
@n7zj0x8,我是多线程方式,多跑一会就出现这问题了。 哎,我感觉qt4好垃圾,我所有资源都加了互斥保护了,还是这不行那不行的,烦死了。
大卫无限
2017-08-31
打赏
举报
回复
你的使用上有问题, QList不会出现这么明显的错误. 你完全可以建立一个空的工程来测试一下QList
军神关云长_大凡
2017-08-31
打赏
举报
回复
没碰过,用之前可以先调clear()清除一下再往里面放数据
朱老师QT系列课程-1.2.QTWidget的控件式开发详解
本课程是《朱老师QT完全学习系列课程 》的第1部分第2个课程,主要讲了qt的控件式开发,并且以常用控件label和pushbutton为案例详细讲了所有的属性及其用法,信号与槽机制。同时课程中还讲了QString类,Q
List
、QMap等QT容器类及其三种遍历方法。总之,学完本课程就基本入门了QT的Widget开发。
关于Q
List
的一个
奇葩
问题
(debug中超范围索引时会报错,release中不报错,但是会返回最后一个值)
关于Q
List
的一个
奇葩
问题
(debug中超范围索引时会报错,release中不报错,但是会返回最后一个值)
Qt开发
奇葩
问题
总集
Qt开发
奇葩
问题
总集 文章目录Qt开发
奇葩
问题
总集说明:使用 QColorDialog 控制台出现提示 未解决Qt 运行程序控制台 自动输出 CUserInputProcessor::OnSetFocus in 之类的环境: win7 Qt Creator4.13.1 Qt5.12.10现象描述:解决办法:出现原因:Qt 打开软件出现 缺库 api-ms-win-core-sysinfo-l1-2-o.dllQt 使用多线程连接信号槽 发生错误Qt 多线程 未解决Qt 使用MSVC
关于qt+vs2019报错的
奇葩
问题
,无法定位程序输入点
怎么说呢,
问题
时这样的,我发现我debug情况下,正常编译和运行,有一天我换成release,直接提示无法找到源文件q
list
.h等等一大堆qt的东西都找不到 然后我就看了下我的qtprojectionsetting是否配置正确 是对的,然后我又看了下qt的路径是否配置正确 也没
问题
,那
问题
出在哪里呢,一直提示error running qmake,后来我把debug的model和release的model进行对比,发现自己多了几个model模块,我将多余的几个model模块取消勾选。再进行编译,就o
qt关于程序崩溃
qt程序崩溃最常见的应该是内存溢出,这是编程习惯造成的, 比如:用Q
list
的时候,没有检查Q
list
.size()的大小,直接就.at()了,这样就造成程序崩溃。 还有就是指针为NULL,结果做为参数或者直接操作使用。也会造成程序崩溃。 所以任何函数,只要带有参数。一定要对参数进行判断,特别是指针或者引用。 接下来介绍一种
奇葩
的程序崩溃现象。 第一步,我们在ui界面上添加一个按钮Qpu
Qt
16,216
社区成员
26,595
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章