setAttribute(Qt::WA_DeleteOnClose) 导致程序崩溃问题
参考:
http://t.csdn.cn/mlrEQ
https://www.cnblogs.com/ganshang/p/17045850.html
项目开发过程中,碰到一个问题,关闭窗口后,程序会崩溃掉。找了好久才发现是设置了这个属性setAttribute(Qt::WA_DeleteOnClose)
未设置该属性时,你去关闭窗口,窗口资源不会立即释放,窗口只是隐藏了。当调用析构函数时,窗口资源才会真正释放。
而设置了该属性,那么你去关闭窗口,窗口资源会立即释放掉。
解决方法有两种
第一种,要么我们就不要设置该属性了。
第二种,动态申请对象,然后不要去手动调用delete释放资源,析构函数不会被调用,就不会造成窗口资源重复释放的问题。main.cpp修改如下
使用中文的时候遇到了编译出错、程序崩溃或显示乱码的问题
MSVC生成的可执行文件是本地编码(GB2312), 而QT会以UTF-8编码来识别可执行程序的文字.
解决步骤
1.设置QT Creator的编辑的编码方式(解决编译出错问题)
2.在代码中增加(解决乱码问题)
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
这个宏告诉MSVC,执行程序中字符的编码采用UTF-8,别用本地的编码