Qt 用着确实挺方便,以前没用过C++ 有些概念理解不好。
在用Qt 绘制坐标系时 点击 RUN 出现以下错误:
Application Output:
Starting F:\Qt_Code\Qt_Table\Qt_table-build-desktop-Qt_4_8_4__4_8_4__Debug\debug\Qt_table.exe...
The program has unexpectedly finished.
F:\Qt_Code\Qt_Table\Qt_table-build-desktop-Qt_4_8_4__4_8_4__Debug\debug\Qt_table.exe exited with code -1073741571
查找了很久发现问题在这:
void coor::changeEvent(QEvent *e)
{
coor::changeEvent(e); //错误!!! 应该是 QWidget::changeEvent(e);switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
问题参考:
QT错误:collect2:ld returned 1 exit status
1.编译成功的例子在后台执行,有时一闪而过,如果再次build ,则会提示上述错误。
解决方法:打开任务管理器,找到相应的exe进程,关闭即可; 或者直接关闭QtCreator。
2.没有编译成功的情况下,最常见情况是程序本身需要include的头文件被遗漏了
解决方法:细心查找基类所用的头文件,include之后即可。
3..h文件中相关的槽函数在cpp文件中没有定义
解决方法:查找遗漏的槽函数,根据需要,具体的定义。
Qt错误:
Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
我是在做图像处理的时候出现这个错误的,原因是没有图的初始数据。个人觉得出现这个错误多半是因为某个变量没有进行初始化,引用不明确造成的。
Qt错误:
Starting D:\e\qt\13-4-19-picture\picture-build-desktop\debug\picture.exe...
D:\e\qt\13-4-19-picture\picture-build-desktop\debug\picture.exe exited with code -1073741571
在用qt进行图像开发的时候,出现了这种问题。经过网上查阅资料,发现这个错误是由于:栈溢出,系统默认的栈的空间大小是1MB。
解决方法是将需要申请栈内存的局部变量更改为其他类型的变量,以减少对栈的压力。下面推荐三种解决方法:
1、要分配的大量局部动态变量或数组,改成用new分配,不过一定要记得delete哦。
2、如果类的定义中有大数组,不要用该类定义局部变量,改成用new构造对象。
3、直接将大容量局部变量数组移到函数外,使其作为全局变量数组存在,不过全局变量要慎用。
Qt错误:
Error -
RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
C:\Users\Administrator\Desktop\picture-build-desktop\debug\picture.exe 退出, 代码: -1073741819
这个问题可困扰了我整整一天,通过单步调试也没看出来程序有什么错误,貌似该获取的值都取到了,逻辑上也完全正确。后来还请教了工作室的大神,折腾了很久才发现,又是内存管理的问题,程序里面申请的堆区的空间太多,把用new申请的空间转变为申请栈区的局部变量,问题就得到解决了。不过说实话对于堆、栈它们各自到底占用多少内存,怎样的分配才算合理,怎样避免这方面的问题,自己目前还是不清楚。
点击打开链接