gpt4 book ai didi

c++ - 如何使用 QCloseEvent 退出程序?

转载 作者:太空狗 更新时间:2023-10-29 20:44:16 27 4
gpt4 key购买 nike

我已经覆盖了登录对话框的 .h 文件中的 closeEvent 函数,以便它在发出时退出程序:

    void closeEvent(QCloseEvent *event){exit(0)}

但是,无论我在对话框中单击什么按钮,程序似乎都会退出。如何只有点击右上角的'x'按钮才能退出?

最佳答案

closeEvent() 在对话框想要关闭时被调用。显然,如果您单击对话框的“确定”或“取消”按钮,那么它就会关闭。这是正常的。

此外,传递给 closeEvent() 的事件应该被接受或忽略。你不应该只是 exit() 应用程序。例如:

void closeEvent(QCloseEvent *event)
{
if (The dialog should close)
event->accept();
else
event->ignore(); // Don't close.
}

窗口为什么要关闭并不重要。用户是否单击了“确定”、“取消”或窗口框架中的“X”按钮。你不知道。结束事件就是这样;窗口想要关闭。

如果对话框是最后一个打开的窗口,那么 QApplication::exec() 将返回并且您的程序将正常关闭。

关于c++ - 如何使用 QCloseEvent 退出程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422182/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com