我最近在忙一个项目,我做的项目是一个局域网聊天的软件,里面有一部分用到了多线程,我打算用多线程实现一个可以 多个人同时聊天的功能,就是说打开一个对话框就是一个线程,接收到对方的消息创建一个对话框也是创建一个线程,可是我在创建的新线程中new 一个聊天的dialog对象(对话框里面存了一些udpsocket对象以及IP地址还有Hostname等,有信号和槽机制来接收消息以及发送消息),然后在thread::run方法内直接执行对话框的exec()函数,可是每当我的程序收到对方发过来的信息的时候,我的程序就会崩溃,出错的信息是这样的: ASSERT failure in QWidget: "Widgets must be created in the GUI thread.", file kernel\qwidget.cpp, line 1264, 多线程的程序我第一次编,Qt使用也不是 很熟练,我网上查了好多,也没理清思路,望各位大神指点一下,或者告诉我一个替代这种方法的更好的思路 |