0
以下は、確認ウィンドウ(メインウィンドウの[送信]ボタンをクリックして開くウィンドウ)の定義です。 confirmwindow.hQtの[送信]ボタンを押すとアプリがクラッシュするのはなぜですか?
#ifndef CONFIRMWINDOW_H
#define CONFIRMWINDOW_H
#include <QDialog>
namespace Ui {
class ConfirmWindow;
}
class ConfirmWindow : public QDialog
{
Q_OBJECT
public:
explicit ConfirmWindow(QWidget *parent = 0);
ConfirmWindow(QString name);
~ConfirmWindow();
private:
Ui::ConfirmWindow *ui;
};
#endif // CONFIRMWINDOW_H
そして私はそれがすべて私がメッセージでアプリがクラッシュボタンを、提出押してもそれまでは行くのプログラムを実行するとconfirmwindow.cpp
に、私は次のように
#include "confirmwindow.h"
#include "ui_confirmwindow.h"
ConfirmWindow::ConfirmWindow(QWidget *parent) :
QDialog(parent),
ui(new Ui::ConfirmWindow)
{
ui->setupUi(this);
}
ConfirmWindow::~ConfirmWindow()
{
delete ui;
}
ConfirmWindow::ConfirmWindow(QString name)
{
ui->label_show_name->setText(name);
}
を定義しコンソールとしてThe program has unexpectedly finished.
mainwindow.cpp
void MainWindow::on_pushButton_submit_clicked()
{
ConfirmWindow confirm_window(ui->lineEdit_name->text());
confirm_window.exec();
}
私はconfirmwindow.cpp
ファイルで間違った方法でコンストラクタを定義していると思います。
あなたは[デバッガ]でそのコードをステップ実行しようとしたことがあり(https://stackoverflow.com/questions/25385173/what-is-a-debugger-and-how-can -it-help-me-diagnose-problems)? – litelite
2つのコンストラクタがあり、そのうちの1つはQDialogのコンストラクタを呼び出しません。 uiを初期化しません。ダイアログを作成するときに使用しているチェックコンストラクタをチェックする方がいいです... – Xatyrian