私はQtのに比較的新しいです戻り、私は彼らが読んclicked.I'veいるとき、それぞれが特定の値を返す別のボタンを持っているかを把握しようとこだわっています信号とスロットについてはQtのドキュメントを使っていましたが、何か有用なものは見つかりませんでした。持っているどのように複数のQtのボタンは、それぞれ異なる値が
私はちょうどクリックされた関数を使用して、 "goto slots"を使って値を返すことができますが、メインからは、ユーザーがクリックすると、後で使用できる対応するintが返されます。このようなものは、それがメインからどのように見えるかです。
OptionMenuWindow option;
int choice = option.checkChoice();
これはOptionMenuWindowクラスで私のコードであるとchoice0Clickedが活性化されたとき、私はクリックされたボタンを知っているように、私はスロットを介して基準としてint型を渡して試してみました。
int OptionMenuWindow::checkChoice(){
this->show();
QEventLoop waitForResponse;
//THIS IS WHERE I TRY AND DO THAT
connect(ui->manageEmployee, SIGNAL (clicked()), &waitForResponse, SLOT(choice0Clicked()));
connect(ui->view, SIGNAL (clicked()), &waitForResponse, SLOT(choice1Clicked()));
connect(ui->generatePayroll, SIGNAL (clicked()), &waitForResponse, SLOT(choice2Clicked()));
waitForResponse.exec();
cout << "here" << endl
cout << choice << endl;
return choice;
}
void OptionMenuWindow::choice0Clicked()
{
choice = 0;
}
void OptionMenuWindow::choice1Clicked()
{
choice = 1;
}
void OptionMenuWindow::choice2Clicked()
{
choice = 2;
}
選択肢がヘッダーファイルで定義されています。
これは私が取得していますエラーです:
のQObjectを::接続:いいえ、そのようなスロットQEventLoopを:: choice0Clicked(&選択)
のQObject ::接続:(差出人名:「manageEmployee 「)
のQObject ::接続:そのようなスロットQEventLoop :: choice1Clicked(&選択は)
のQObject ::接続しない:(送信者名を 'ビュー')
のQObject ::接続:いいえ、そのようなスロットQEventLoopを:: choice2Clicked(&選択)
のQObject ::接続:(差出人名: 'generatePayroll')
私は実際にそこにあると信じて誰かがそれを説明してもらえますか?
もし私に詳しいことが必要なものがあれば、コメントにそれを教えてください。
ありがとうございました
シグナルのシグネチャは、接続されたスロットのシグネチャと一致する必要があります(https://doc.qt.io/qt-5/signalsandslots.html#signals-and-slots)。 [Qtの例](https://doc.qt.io/qt-5/gettingstartedqt.html)に従ってみて、ボタンがクリックされたときにどのように処理されるかを確認してください。 – Mike