Qt5.9.0中TextEdit中文本显示不全,部分字符显示空白问题解决

Qt5.9.0中TextEdit中文本显示不全,部分字符显示空白问题解决

问题背景

写了一个简单的工具,使用TextEdit用于实时显示通信过程中的日志信息。在调试过程中发现输出到TextEdit中的内容部分字符显示为空白。不过通过鼠标选中内容,复制粘贴时文本能粘贴成功,并非空白。网上查了很多资料,奈何都没有找到这种问题的解决办法。

问题代码如下

	connect(protocolTransactionWorker, &ProtocolTransaction::displayDebugInfo, [=](const QString &info){
        qDebug() <<  "主线程收到协议数据:" << info << "线程ID:" << QThread::currentThreadId();
        //追加数据 换行
        //QString displayStr = info;
        ui->textEditDebugInfo->append("你好!");
        ui->textEditDebugInfo->append(info);
        qDebug() <<  "主线程收到协议数据:" << info;
    });

问题代码运行时的现象如下
在这里插入图片描述

问题解决

后来通过对比之前能正常显示内容的TextEdit的代码发现,正常显示的TextEdit都没有通过匿名函数来作为槽函数。因此修改代码如下;最终验证问题已经解决。

/* .... */
	connect(protocolTransactionWorker, &ProtocolTransaction::displayDebugInfo,this,onDisplayDebugInfo);
/* .... */
void MainWindow::onDisplayDebugInfo(const QString &info)
{
    qDebug() <<  "主线程收到协议数据:" << info << "线程ID:" << QThread::currentThreadId();
    //追加数据 换行
    //QString displayStr = info;
    ui->textEditDebugInfo->append("你好!");
    ui->textEditDebugInfo->append(info);
    qDebug() <<  "主线程收到协议数据:" << info;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值