3

やっと学校のプロジェクトを終わらせようとしていて、ドロップダウン メニューに終了オプションがあればいいのにと思いましたが、何を試しても機能しません。暇なときにそれを見ていただければ、本当に感謝します(またはあなたが持っているかもしれない提案があれば)

void MainWindow::on_actionExit_triggered()
{
    connect(this,SIGNAL(triggered()),MainWindow,SLOT(close()));
} 

デバッグしようとするたびに、次のエラー メッセージが表示されます。

エラー: ',' トークンの前にプライマリ式が必要です

4

1 に答える 1

12
  1. connectクラス名ではなく、オブジェクトポインタを関数に渡す必要があります。に置き換える必要MainWindowがありthisます。コンパイルエラーを修正します。

  2. connectクラスコンストラクターにステートメントを入れる方が賢明です。connectユーザーがメニュー項目を押したときにいつでも動作させたい場合は、初期化時に実行する必要があります。

  3. on_actionExit_triggeredは特別な名前形式を持っています。このような名前でスロットを作成すると、Qt はそれをアクションのtriggeredスロットに自動的に接続します (詳細については、自動接続を参照してください)。ですので、特に記載の必要はありません。actionExitconnect

  4. on_actionExit_triggeredユーザーがメニュー項目を押すと、スロットが呼び出されます。もちろん、それにいくつかの実装を入れる必要があります。例えば:

    void MainWindow::on_actionExit_triggered() {
        QApplication::quit();
    }
    
于 2013-08-02T20:16:36.977 に答える