为什么这个应用程序在新线程启动时崩溃,请有人指出我做错了什么..
新线程.h
#ifndef NEWTHREAD_H
#define NEWTHREAD_H
#include <QThread>
class newthread: public QThread
{
public:
newthread();
public slots:
void run();
};
#endif // NEWTHREAD_H
新线程.cpp
#include "newthread.h"
#include "mainwindow.h"
#include<QDebug>
newthread::newthread()
{
}
void newthread::run(){
qDebug()<<"thread executed";
}
主窗口.cpp
#include <QtGui>
#include "mainwindow.h"
#include"newthread.h"
MainWindow::MainWindow(QWidget *parent)
{
setupUi(this);
connect(pushButton,SIGNAL(clicked()),this, SLOT(opthread()));
}
void MainWindow::opthread(){
newthread th;
th.start();
}
在主窗口中,有一个名为 ophthread() 的公共插槽。如上所示,当按下主窗口中的按钮时,该插槽将触发。在其中 ii 声明了一个名为 th 和 th.start() 的新线程对象来启动它。我做错了什么吗?
这编译没有错误。但是当运行二进制文件时,它会出错并崩溃。
我的第二个问题是,如果我需要线程在主窗口的 textEdit 上写一些文本,该怎么做。是否有可能 newthread 类访问主窗口类中的对象。