用Qt不太久,刚做一个线程的东西,总是不对,想请教一下大家. 问题是这样,我有一个readthread线程,它要不断的输出一个字符,程序如下
readthread::readthread()
{
}
readthread::readthread(QTextEdit *msgEdit)
{
rt_qtedit = msgEdit;
rt_qtedit->append("create read thread");
}
void readthread::run()
{
for(;;)
{
rt_qtedit->append("hallo");
}
}
在另一个程序readtest里,我创建了一个readthread的实例,然后把readtest里创建的输出窗口,就是QTextEdit的那个对象qtedit,传递给readthread,我是希望readthread线程里的run()能把字符都输出到qtedit这个窗口,程序如下
readtest::readtest(QWidget* parent) : QWidget(parent)
{
qtedit = new QTextEdit;
readTask = new readthread(qtedit);
QHBoxLayout *main_layout = new QHBoxLayout;
main_layout->addWidget(qtedit);
setLayout(main_layout);
readTask->start();
}
很简单的一个东西,可总不对,创建readthread时,"create read thread"这段话可见,但是"hallo"不可见,而且一运行到append("hallo")时就会出错,麻烦谁能指点一下吗? 先谢谢了