QT运行报错
Signal received
The inferior stopped because it received a signal from the Operating System.
Signal name : SIGSEGV
Signal meaning : Segmentation fault
这个错误说明程序中有野指针
.h文件中
class QErrorMessage;//错误信息对话框QErrorMessage前置声明
class MyWidget : public QWidget
{
Q_OBJECT
private:
Ui::MyWidget *ui;
QErrorMessage *errordlg;
}
.cpp文件
#include "mywidget.h"
#include "ui_mywidget.h"
#include <QDebug>
#include <QColorDialog>//颜色对话框
#include <QFileDialog> //文件对话框
#include <QFontDialog> //文字对话框
#include <QInputDialog>//输入对话框
#include <QMessageBox> //消息对话框
#include <QProgressDialog>//进度对话框
#include <QErrorMessage> //错误信息对话框
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::MyWidget)
{
ui->setupUi(this);
}
MyWidget::~MyWidget()
{
delete ui;
}
void MyWidget::on_pushButton_2_clicked()//文件对话框
{
void MyWidget::on_pushButton_7_clicked()//错误信息对话框
{
errordlg->setWindowTitle(tr("错误信息对话框"));
errordlg->showMessage(tr("这里是出错信息!"));
}
}
errordlg为野指针,使用new重新分配内存
void MyWidget::on_pushButton_7_clicked()//错误信息对话框
{
errordlg = new QErrorMessage(this);//新建QErrorMessage对话框
errordlg->setWindowTitle(tr("错误信息对话框"));
errordlg->showMessage(tr("这里是出错信息!"));
}