Qt Windows 笔记
1. 窗口关闭问题
[参考] https://blog.youkuaiyun.com/u012997311/article/details/51283526
GUI在关闭QWidget及其子类窗口时需销毁窗口
如果主窗口定义在堆上:
MainWindow *w = new MainWindow ; w->show();
在子类窗口构造函数中添加
setAttribute(Qt::WA_DeleteOnClose)
, 可以在窗口关闭时自动销毁窗口。但是如果主窗口定义在栈上:
MainWindow w; w.show();
以后, 会在关闭时出现异常,因为当退出main方法时,会自动销毁窗口,而setAttribute方法会使得Qt再次销毁窗口,造成二次delete,产生报错。
2. 黑框程序:控制台关闭问题
- Qt 自动创建的黑框程序,默认是
run in console
, 不需要黑框窗体时,在project->run setting中把这项勾选去掉。 - 如果遇到程序运行结束后,黑框后台没关闭:Qt 自动创建的程序.pro文件中默认
CONFIG += console
, 改成CONFIG += console release
3. Qt 中文乱码,中文编译失败
[详细解决]: http://liuweilhy.blog.163.com/blog/static/11405670201510901627229/
- 工具-选项-文本编辑器:选择utf-8编码,utf-8-BOM选择如果是utf-8则添加
- 在有中文的文件中加入宏定义:
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif