本文主要是介绍Qt QTextEdit调用append数据重复的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用QTextEdit写了个串口工具, 当串口有数据时通过一个signal传给slot,在 slot中调用QTextEdit的append(text)来增量显示串口数据,当串口关闭时调用clear()来清空显示。
结果发现append调用后显示的数据会有重复。
分析
分析代码,在open串口后,会调用connect,把串口数据传到onSerialData函数中,一个signal会多次调用slots,导致数据重复。
connect(m_serialPort, SIGNAL(readyReadSig(QString)), this, SLOT(onSerialData(QString)));
解决
connect最后添加参数Qt::UniqueConnection确保signal一一对应slots,不会重复调用。
connect(m_serialPort, SIGNAL(readyReadSig(QString)), this, SLOT(onSerialData(QString)), Qt::UniqueConnection);
作者:帅得不敢出门 csdn原创
这篇关于Qt QTextEdit调用append数据重复的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!