QT5中 socket 与 多线程的问题(聊天程序)

大家好
我在用QT5写一个聊天程序
用的是c/c++的封装的socket函数(QT封装的UDP不知道为什么不能正常发包)
问题是这样的:

有两个窗口
1. MainWindow 类的 login,程序启动首先显示它
2. Dialog 类的 chat, 要求登陆成功后才显示它
这两个窗口在main中QApplication a 和 a.exec()之间创建。
login窗口其中一个button点击后可以向服务器发送一个登陆请求,那么,如何
接收这个请求呢?我目前的做法是同样将这个button connect了一个receive函数,
不过只接受一个包,这样实现真的很丑,而且无法做到持续监听(这是chat窗口中的
关键)

我尝试用了c++11的thread来写多线程,传入一个窗口的指针,但好像不允许在子线程里调用窗口类实例的show()之类的函数,报错了(这点也是我很想知道的,类中定义的public成员函数可以在子线程中调用,但是不能调用诸如show(), close()之类的函数)

我刚学QT没多久,参考的很多QT聊天程序都是用QT封装的socket,但是这边用不了,如果一定要用c/c++封装的
有什么好的解决办法来实现吗?

2个回答

发布的话你尝试使用release发布;
Qt本身就是一套类库,你在程序中使用C/C++的第三方库应该不会出错

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐