Как приостановить программу внутри функции, пока пользователь не сделает что-то в форме - PullRequest
0 голосов
/ 10 апреля 2019

Я работаю над проектом для своего класса C ++, и мы делаем программу для покера с ИИ и пользователями.Использование QT для разработки.

Что мне нужно сделать, так это внутри функции DECISION (), если игрок не является ИИ, программа делает паузу до тех пор, пока пользователь не нажмет кнопки, чтобы либо свернуть, либо вызвать, либо повысить.

В основном мне нужно приостановить программу в середине выполнения функции, пока пользователь не нажмет кнопку.Затем будет продолжена оставшаяся функция

if(Player[pp].ai == true){
    //A bunch of code for AI decision making for folding, calling, raising.
}
else{ //If Player is NOT an AI
    ENABLEUSERINPUT(true);

   //Need to pause program here until the user has done something to the GUI

   ENABLESERINPUT(false);

}

1 Ответ

0 голосов
/ 10 апреля 2019

Можно дождаться пользовательского ввода, используя QEventLoop Например, нажатие на кнопку приведет к выходу из цикла событий.

//Need to pause program here until the user has done something to the GUI
QEventLoop oLoop;

// user click on button will release the event loop.
connect(pYoutrBtn , &QPushButton::clicked,
        &oLoop,     &QEventLoop::quit);

// wait.
oLoop.exec();
...