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,C/C++,qt,开发语言)