- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我已经覆盖了登录对话框的 .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/
我的 MainWindow 创建了一个名为 wid 的 QWidget。如何创建一个在该小部件关闭时激活的插槽? 最佳答案 您可以继承 QWidget 并添加如下功能: class Closeable
我有一个用 C++ 和 Qt 编写的桌面 Windows 应用程序。该应用程序有几个顶级窗口,偶尔需要以编程方式关闭和重新创建。此外,当程序的用户单击关闭按钮(最小化和最大化按钮旁边的那个)时,整个程
我想创建一条消息,当用户按下退出按钮时,该消息会出现在新窗口中。为此,我创建了一个 QCloseEvent,但 MainWindow 实际上根本没有关闭。我究竟做错了什么? 主窗口.h class M
我已经覆盖了登录对话框的 .h 文件中的 closeEvent 函数,以便它在发出时退出程序: void closeEvent(QCloseEvent *event){exit(0)} 但是,
我正在尝试做一些非常简单的事情:添加一个带有 Exit 操作的菜单栏,该操作将在选择时关闭 QMainWindow 。但是,当我实际单击 Exit 时,它不会关闭应用程序。 SSCCE: from P
我目前正在尝试将我的 Qt 应用程序移植到 Mac OSX,但遇到了以下问题: 我的一个窗口类(派生自 QMainWindow)在按下关闭按钮时显示一个对话框,您可以在其中保存/放弃更改或中止。这是通
我的主窗口中有 2 个触发器1.从完全关闭应用程序的菜单2. 从窗口 X 按钮忽略并隐藏窗口。我正在使用这个 SIGNAL/SLOTS我怎么知道它是从哪里触发的? 在closeEvent中: conn
我是一名优秀的程序员,十分优秀!