程序崩溃这是Qt的bug还是我代码的问题?

dujiakehu 2016-05-02 03:57:07
程序编译、运行都没有问题,执行某一操作后程序崩溃,问题签名如下,debug找不到崩溃的语句。该操作有对指针进行delete,但是我把所有delete注释掉了还是会崩,有没有大神能告诉我原因?是qt的bug还是我程序的问题?
问题签名:
问题事件名称: APPCRASH
应用程序名: xxxxxx.exe
应用程序版本: 0.0.0.0
应用程序时间戳: 5727070c
故障模块名称: Qt5Widgetsd.dll
故障模块版本: 5.1.1.0
故障模块时间戳: 521ae615
异常代码: c0000005
异常偏移: 004548e3
OS 版本: 6.1.7601.2.1.0.256.1
区域设置 ID: 2052
其他信息 1: 0a9e
其他信息 2: 0a9e372d3b4ad19135b953a78882e789
其他信息 3: 0a9e
其他信息 4: 0a9e372d3b4ad19135b953a78882e789
...全文
610 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dujiakehu 2016-05-11
  • 打赏
  • 举报
回复
那几天比较忙没空检查代码,现在再看发现已经不崩溃了。。。 做的东西是类似Qt样例DiagramScene的东西,可能是我主动调用update重绘的地方太多导致的 总之谢谢各位的回答~
gucunlin 2016-05-04
  • 打赏
  • 举报
回复
应该是你代码的问题。检查代码
Davidsdu 2016-05-03
  • 打赏
  • 举报
回复
大部分时候是指针问题,楼主还是要好好检查一下。
feiyangqingyun 2016-05-03
  • 打赏
  • 举报
回复
毫无疑问代码问题,可以试试新建个空白工程,看下崩溃不!
foruok 2016-05-03
  • 打赏
  • 举报
回复
多数情况是你代码问题——有些对象会在父对象被析构时自动析构,可以查查。
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于C++、Qt实现底层绘图算法的绘图系统源码+项目说明.zip # PaintWorks ## 已实现的功能 * 直线绘制 * 圆的绘制+填充 * 椭圆绘制 * 多边形绘制+填充 * 已实现基础的UI交互,切换图形绘制模式 * 已实现markDraw,为各Figure提供被选中的虚线矩形框显示 * 已实现**图形编辑** * 已实现**图形变换** - 平移:已实现各图形的平移(通过点的平移实现) - 旋转:已实现各图形的旋转(其中圆的旋转保持不变,椭圆旋转只能转90度) - 缩放:已实现各图形的缩放(直线以中点为准,圆和椭圆以中心为准,多边形以绘制的第一个点为准) * 已实现**图形裁剪** * 只实现了直线与多边形的裁剪 * 直线裁剪为梁友栋-Barsky裁剪算法,多边形裁剪为单边裁剪算法 * 对所有直线与多边形进行裁剪 * 已实现**存储图形数据** * 保存为bmp格式 * 已实现**3D六面体显示** * 使用OpenGL库函数 * 可以使用键盘控制左右旋转 * 已实现UI基础交互 * 放大缩小 对所有图形同时放大缩小,缩放基准点为各图形自己的基准点,而非鼠标 * 填充 * 裁剪 * 平移 * 直线拖动中点平移 * 圆拖动圆心平移 * 椭圆拖动中心平移 * 多边形拖动中心平移 * 聚焦(点击图形让被选中图形在最高图层显示) * 直线 * 圆 * 椭圆 * 多边形 * 旋转:拖动handle旋转 * 点:添加了三个相关支持函数 * 直线:使用点的支持函数实现 * 圆:只改变handle,其余均不动 * 椭圆:handle旋转至水平或垂直时,旋转90度 * 多边形:按键时不改变handle ## 下一步工作 ## 目前进展 * 已实现缩放改为对单个图形进行缩放,裁剪改为对单个图形进行裁剪 * 已实现交互界面新增功能 * 平移:拖动矩形中心点 * 旋转:拖动延伸出来的点 * 已实现添加删除图形、清空图形按钮 * 已添加图形选中 * 直线:检测轮廓点 * 圆、椭圆、多边形:检测轮廓点+填充点 * 画布的curCtrl变化之后,通过信号-槽机制从widget向Mainwindow发送消息,改变当前绘图模式 * 已添加颜色控制按钮 * 选择颜色之后,线条与填充均为这种颜色 * **曲线绘制&编辑&变换** * 已实现曲线绘制+拖动控制点编辑 * 曲线变换 * 平移 * 缩放 * 旋转 * 已实现选取 * isOn*函数检测该点是否在图形上 * isOn()检测该点是否在图形或标记点(markPoints,center,handle)上,isOnPlain()检测该点是否在图形本身上(不包括标记点) ## 可以改进的地方 ## tips * 解决了MainWindow直接控制当前GLWidget的问题 使用`dynamic_cast()`即可,可以不必再使用GLWidget的数组canvases(已去掉) ## bug * ~~标签页关闭之后切换图形绘制模式会导致程序崩溃~~ 已使用dynamic_cast解决 应该让QMdiSubWindow在关闭时delete掉GLWidget,可能需要重写QMdiSubWindow的` virtual void closeEvent(QCloseEvent * closeEvent)` 函数,最好是将相关信号关联到Mainwindow的一个槽函数,省得再写QMdiSubWindow了。 * ~~椭圆刚生成的时候handle有问题~~ 已解决

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧