【发布时间】:2012-02-14 12:19:26
【问题描述】:
我有一个应用程序,我在其上显示配置面板 (QFrame) 来设置配置。现在我想实现一个功能,如果用户单击我的应用程序上的任何其他位置,我关闭配置面板,但如果用户单击应用程序外部的任何位置,它不应该关闭应用程序。
目前我有以下代码在 Win 7 上运行良好,但在 Mac 上出现问题。
void ConfigurationPanel::changeEvent ( QEvent * event)
{
if(event->type() == QEvent::ActivationChange)
{
if(!isActiveWindow())
{
if(QApplication::activeWindow())
{
close();
}
}
}
}
在 windows QApplication::activeWindows() 如果我们单击应用程序上的任何位置(但在配置面板之外)返回非零值,如果我单击任何其他预期的应用程序则返回零值。但在 Mac 上,无论我点击哪里,我总是从 QApplication::activeWindow() 获得零值。
谁能告诉我如何解决这个问题?
谢谢
【问题讨论】:
标签: qt