jcl_betterman 2019-07-29 10:32 采纳率: 0%
浏览 2819

qt中当我点击按钮时出现QObject:Cannot create children for a parent that is in a different thread.

我的这个程序是这样的服务器端要产生随机数,把产生的随机数写到文件中,把文件发送给客户端,服务器需要多线程来完成,因为要一边产生随机数到内存上,写到文件中,一边把内存上的内容发送给客户端。现在的问题是在服务器上点击发送数据的时候出现错误,这样的错误QObject: Cannot create children for a parent that is in a different thread.
下面是我的代码
这是线程的.h文件代码

图片说明

这是线程.cpp文件的代码

图片说明

这是主程序.h的代码

图片说明

这是主程序.cpp的代码

#include "mywindow.h"
#include "ui_mywindow.h"

//int *p=new int[1024*1024];

//char arr[1024*1024];

mywindow::mywindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::mywindow)

{
ui->setupUi(this);

tcpserver = new QTcpServer;

// tcpsocket = new QTcpSocket;

tcpserver->listen(QHostAddress::Any,8899);


connect(tcpserver,SIGNAL(newConnection()),this,SLOT(myslot_connect()));

}

mywindow::~mywindow()
{

delete ui;

}

void mywindow::myslot_connect()
{

ui->textEdit->append("客户端连接成功");
tcpsocket=tcpserver->nextPendingConnection();

}

void mywindow::on_pushButton_clicked()//产生数据的槽函数
{

int i;
QString s;
srand((int)time(0));
for(i=0;i<1024*30;i++)
{
    arr[i]=rand();
    s +=QString::number(arr[i]);

    QFile file("D:/server.txt");
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)){
                            //打开失败就结束
        return;
    }
    QTextStream out(&file);
    out << s;                //往文件中写内容
    memset(arr,0,sizeof(arr));
    QApplication::processEvents();
}

}

void mywindow::on_pushButton_2_clicked()//发送数据的槽函数
{

thread = new HDThread(this);
thread -> start();

}

现在我点击发送数据的时候就会产生错误
图片说明

错误为

图片说明

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-25 19:44
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退