如何在Qt中使用connect来了解何时单击“X”(退出)按钮

时间:2017-04-04 01:44:45

标签: c++ qt button qt5

我正在努力弄清楚如何使用连接功能来识别左上角的“x”按钮何时被点击。取消窗口的红色“x”按钮。

enter image description here

我知道我可以覆盖closeEvent来做我想做的事情,但我需要使用connect函数。让我告诉你一个问题的背景。

我有一个我从main调用的函数:

ManageEmployeeWindow mng;
int choice = mng.checkChoice();

checkChoice用于创建窗口并返回一个int,具体取决于该窗口上用户决定单击的按钮。

ex-如果用户单击按钮1,则checkChoice将返回1.

现在知道我想通过checkChoice返回一个数字,使用connect函数识别单击按钮的时间,如何点击“x”按钮?无论如何都这样做?

顺便说一下这里是checkChoice,这样你就可以理解我对连接的意思了。

int ManageEmployeeWindow::checkChoice(){

this->exec();
cout << "Inside of the checkChoice" << endl;
QEventLoop waitForResponse;
connect(ui->ManualEmployeeUpdate, SIGNAL (clicked()), &waitForResponse, SLOT(quit()));

connect(ui->DataIntegrationTool, SIGNAL (clicked()), &waitForResponse, SLOT(quit()));

connect(x,SIGNAL(clicked()),this,SLOT(ButtonPressed()));

waitForResponse.exec();

return choice;

}

请让我听听你对此的看法。

如果我分发了太多细节,谢谢你和我的朋友们

1 个答案:

答案 0 :(得分:0)

如果您想在按下X按钮时创建信号,您可以创建信号并使用closeEvent方法发出信号。

protected:
    void closeEvent(QCloseEvent * event){
        emit clicked();
        event->ignore();
    }

signals:
    void clicked();