好的,为什么这段代码不起作用?
void Jarvis::closeEvent(QCloseEvent *e)
{
if (m_doQuit) {
e->accept();
} else {
e->ignore();
hide();
}
}
m_doQuit是真的,我查了一下。
目前我正在使用
void Jarvis::closeEvent(QCloseEvent *e)
{
if (m_doQuit) {
QApplication::quit();
e->accept();
} else {
e->ignore();
hide();
}
}
哪个确实有效,但恕我直言,即使是第一个也应该工作。为什么它不起作用?
“doest not work”我的意思是应用程序没有关闭:/它只是继续运行。
答案 0 :(得分:0)
我认为 Jarvis 继承了QWidget。
然后你应该将事件传递给QWidget类,如下所示:
void Jarvis::closeEvent(QCloseEvent *e)
{
if (m_doQuit) {
QWidget::closeEvent(e);
} else {
e->ignore();
hide();
}
}
简单地接受该活动将无济于事。也许你可以在第二种情况下接受这个事件,因为你 以某种方式对它作出反应。即使你没有关闭......但这是有原因的。