Qt_errors

Qt_errors

Qt5线程错误:

QThread: Destroyed while thread is still running(执行runThread->exit(0))
原因:主进程结束,但是线程还没有执行完毕
解决方法: 如run中是一个循环函数,及加上终止条件即可
例:
~myThread(){ flag = false; quit(); wait(); }
run() { while(flag){ } } //即析构后不满足循环条件结束线程

Qt为什么 关闭窗口结束主进程

自行判断: 当有一个GUI窗口程序时,关闭该窗口,结束整个程序

析构导致程序崩溃

1.栈对象的自动释放
Qt 保证的是,任何对象树中的 QObject对象delete的时候,
如果这个对象有parent,则自动将其从parent的children()列表中删除;
如果有孩子,则自动delete每一个孩子。
Qt保证没有QObject会被delete 两次,这是由析构顺序决定的。

(标准 C++ 要求,局部对象的析构顺序应该按照其创建顺序的相反过程)
例:
	{//程序正常执行:
		QWidget window;
		QPushButton quit("Quit", &window);
	}	
	{//程序崩溃(quit析构两次):
		QPushButton quit("Quit");
		QWidget window;

		quit.setParent(&window);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值