我把主界面的一个textEdit的指针传到新开的QThread线程里去
我子类化了QThread,然后在构造函数里加了一个参数,以便把指针传递进去,如
class MyThread: public QThread
{
......
QTextEdit* textEdit; //在我子类里加了一个QTextEdit指针
}
MyThread::MyThread(QObject*parent,QTextEdit* textEdit_pass) //构造函数
:QThread(parent)
{....
this->textEdit=textEdit_pass;
}
run()函数代码如下:
void MyThread::run()
{
.........
qDebug()<<textEdit->objectName(); //没有问题
qDebug()<<textEdit->toPlainText(); //没有问题
// qDebug()<<textEdit->setPlainText(); //有问题
..........
}
出现了一个很奇怪的问题:
在线程里,我对textEdit读取了它的信息objectName(),toPlainText(),size()等都没有问题
但是,
当我尝试对textEdit进行修改的时候,如
setPlainText(),append(),resize()等操作的时候,程序运行到这些修改的操作时,就会出错崩溃
这是什么原因?
警告报错信息:
Runtime Error!
Program:...thread.exe //thread.exe就是我的程序
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
[ 此帖被iiiyyyhhhsss在2010-03-22 09:16重新编辑 ]