登錄成功後程序異常關閉。代碼中 `Login` 構造函數已 `new Information()`,登錄槽函數中又 `new Information()` 並 `show()`。
// Login.h
class Login : public QWidget {
Q_OBJECT
Information *mainWin; // 成員持有主窗口指針
public:
Login(Information *win, QWidget *parent=nullptr) : QWidget(parent), mainWin(win) {}
// ...
private slots:
void onLoginClicked() {
if (checkAccount()) {
this->hide();
mainWin->show(); // 顯示傳入的唯一實例
}
}
};
// main.cpp
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
Information w; // 棧上或堆上唯一實例
Login login(&w);
login.show();
return a.exec();
}