QT が例外理由をスローする

Qt プログラムが異常終了する理由:

1. ポインタを使用する前にポインタが null かどうかを判定する必要があり、NULL であってもポインタを直接使用すると異常終了します。
たとえば、QTableView: QStandardItemModel *model = new QStandardItemModel;
model->item(0,1)->text()
セルは編集されていないため、model->item(0,1)->text() を直接使用します。プログラムは異常終了します。

2. デストラクタにメモリを解放する削除コードを追加すると、Qt アプリケーションが終了し、プログラムが異常終了しますが、デストラクタ内の削除コードを削除すれば問題ありません。
QTableView から継承した Qt デザイナー インターフェイス クラスをプロジェクトに追加し、ui_widget.h (widget.ui インターフェイスのソース コード) で、QTableView を追加したクラスのクラス名に変更します。新しく作成したクラスの cpp ファイル内で ui(new Ui::CTblView); ui->setupUi(this); の 2 行をコメントアウトしますが、delete ui はコメントアウトしないでください; 理由は最初の点と同じです。 ui が
定義されているため、使用した場合は直接削除することになり、プログラムが異常終了します。この行もコメントアウトするのが通常です。

3. インスタンス化せずにポインター オブジェクトを参照する
例: Dialog *d; d = new Dialog; d->show(); 2 行目のインスタンス化を忘れると、Qt プログラムも異常終了します。


百度からの転載: https://zhidao.baidu.com/question/433068969.html

おすすめ

転載: blog.csdn.net/qq_42788340/article/details/113636777