2013-02-13 47 views
0

我一直在反对这个模式,但我终于放弃了并寻求帮助。qt'x'在全屏模式下不能关闭应用程序

我的问题是,我的程序有一个settings.ini,我想在程序关闭时更新。我已经实现了这一点使用:

kegTrackerce.h

protected: 
    void closeEvent(QCloseEvent *event); 

void KegTrackerCE::closeEvent(QCloseEvent *event) 
    { 
     saveSettings(); 
     event->accept(); 
    } 

这节省了设置,当我经过文件并退出这是伟大的,但是当关闭该程序我点击右上角的“X”,窗口消失,但程序不退出(没有退出代码),再加上当我再次打开应用程序时,程序立即打开而不是加载。

我已经确定,当我包括下面的代码

KegTrackerCE::KegTrackerCE(QWidget *parent, Qt::WFlags flags) 
    : QMainWindow(parent, flags) 
{ 
//A heap of other stuff here 
KegTrackerCE::showFullScreen(); 
} 

当我注释掉showfullscreen,TA大新的“X”的作品,因为它应该设置文件进行适当更新,这只是发生,该程序从内存中清除,我得到0退出代码。

我真的不希望离开应用程序的最大化,而不是全屏,因为屏幕空间是有限的,因为它没有一个顶部的冗余栏。

感谢您的帮助球员,我已经试过的东西堆,我已经包括:

qApp->setQuitOnLastWindowClosed(true); 

随着

void KegTrackerCE::lastWindowClosed(){ 
QApplication::quit(); 
} 

但是,这并不做任何事情。

我相当肯定closeEvent()没有被调用时,按下x时,事情是在全屏。

反正,请帮忙!!您的帮助将非常感谢!

谢谢你们

回答

0

“我相当确定的closeEvent()是没有得到所谓的当按下X时,就是在全屏所有”把一个破发点的函数内部检查,因为我没有看到任何关闭closeEvent的原因没有被调用。

并致电hide()内部closeEvent event->accept();之前。可能不是一个解决方案,但只是为了检查

+0

在KegTrackerCE :: closeEvent(QCloseEvent * event)中添加QMainWindow :: closeEvent(event) – 2013-02-13 09:40:20

+0

hay thanks for你的回应。我已经尝试了隐藏和qmainwindow方法。我不知道为什么x按下时没有调用关闭事件,我该如何放置一个断点? – user2067103 2013-02-13 11:54:19

+0

取决于您使用的IDE,我使用visual studio。你可以尝试而不是showFullScreen(),使用showMaximized() – 2013-02-13 12:19:44

1

有点环顾四周,我发现在这之后:

Nonclosing close button in Windows Mobile (developed with Qt)

这是一个解决方案,但我很高兴我的修补程序。基本上,按下按钮时,win ce会使应用程序默认运行。有人谈论设置一些风格,但我认为简单地删除x是最简单和最有效的方法

相关问题