qt因指针未初始化而引发的crash错误
谨记!!!谨记!!!
1.老规矩看一下问题代码
Login类构造函数,h为指针变量已在.h文件中声明.声明的指针变量一定要初始化!!!一定要初始化!!!一定要初始化!!!否则也会报crash错误
Login::Login(QWidget* parent)
: QWidget(parent)
, ui(new Ui::Login)
{
ui->setupUi(this);
connect(h, &Home::back, this, &Login::showme);
connect(ui->btn_login, &QPushButton::clicked, this, &Login::hideme);
h = new Home();
}
槽函数
void Login::showme()
{
//h窗口展示
this->show();
h->hide();
}
void Login::hideme()
{
//当前窗口隐藏
h->show();
this->hide();
}
2.此段代码报错(crash)解决方案
指针变量的初始化一定要在使用之前!!!指针变量的初始化一定要在使用之前!!!指针变量的初始化一定要在使用之前!!!
修改如下
Login::Login(QWidget* parent)
: QWidget(parent)
, ui(new Ui::Login)
{
ui->setupUi(this);
h = new Home();
connect(h, &Home::back, this, &Login::showme);
connect(ui->btn_login, &QPushButton::clicked, this, &Login::hideme);
}
完美运行
参考:我的老师😁