在一个窗口中添加了 QTextEdit/QPlainTextEdit控件,并在生成的新的子线程中直接调用了 QTextEdit/QPlainTextEdit 的append/appendPlainText函数,这个时候就会出现下面的错误:
QObject::connect: Cannot queue arguments of type 'QTextCursor'
(Make sure 'QTextCursor' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QTextBlock'
(Make sure 'QTextBlock' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QTextCursor'
(Make sure 'QTextCursor' is registered using qRegisterMetaType().)
解决方法:
Qt中带参数的信号如果在线程中被发送,那么必须放入队列里面,由于QTextEdit是Qt库自带的,改起来不方便,所以我采用了一个简单的方法来解决这个问题,原理是在窗口类中定义信号和槽&