このQDialog::Acceptedは1、QDialog::Rejectedは0と定義されています。行目は実行されません。SecondDialog.hは2つ目のダイアログクラスを定義しています。SecondDialog.cppの18,19行目を見てください。出すよう設定しています。accept関数もreject関数もウィンドウを隠すという動作を行います。QDialog::Rejectedにするかが違います。今度はモードレスダイアログを作ってみましょう。ダイアログのように他のウィンドウが操作できないなどの制約は特にありません。モードレスダイアログのコードは次のようになります。ボタンの配置などは4.2節のコードは同じです。editor->text();}まず、MainDialog.cppのshowSecondDialog関数を見てください。この関数はShowSecondDialogボタンを押すことによって呼び出されます。22行目のif文の中身はsecondDialogがNULLであるときに呼び出されます。secondDialogを呼び出すときに実行されます。関数が呼び出されます。okButtonClicked関数はSecondDialog.hに定義されています。この関数の説明はもう少し先で説明します。setTextLabel関数では、secondDialogにあるテキストの中身をMainDialogのラベルにセットしています。getLineEditText関数もSecondDialog.hおよびSecondDialog.cppに定義されています。SecondDialog.hの18,19行目及びSecondDialog.cppの18,19行目を見てください。するためのマクロです。このokButtonClicked関数の中身はQtが勝手に作成します。よって定義のみ書けばよいです。数が呼び出されるようにセットしています。今まではconnect関数の第4引数はSLOTとしていましたが、18行目のようにSIGNALを呼び出すこともできます。connectしています。最後のgetLineEditText関数ではsecondDialog内のテキストの中身を取得するための関数です。