我正在努力弄清楚如何使用连接功能来识别左上角的“x”按钮何时被点击。取消窗口的红色“x”按钮。
我知道我可以覆盖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;
}
请让我听听你对此的看法。
如果我分发了太多细节,谢谢你和我的朋友们
答案 0 :(得分:0)
如果您想在按下X按钮时创建信号,您可以创建信号并使用closeEvent
方法发出信号。
protected:
void closeEvent(QCloseEvent * event){
emit clicked();
event->ignore();
}
signals:
void clicked();