【发布时间】:2016-06-17 21:53:45
【问题描述】:
我有一个应用程序,它由两个显然独立的窗口组成。窗口 A 加载数据并显示一些日志、状态信息;打开窗口 B,在此进行交互式处理。为了防止意外关闭,在 B 中我有一个事件处理程序,如下所示。它工作正常,但是,它也阻止窗口 A 在终止时关闭它。有没有更好的方法,比在 B 中使用公共插槽,并由 A 通过它发送消息,现在窗口 B 真的可以关闭? (或区分终止应用程序和关闭其中一个窗口?)
void B::closeEvent(QCloseEvent *event)
{
QMessageBox::warning(this, tr("Application"),
tr("Can only be closed through closing the main window.!"),
QMessageBox::Ok );
event->ignore();
}
【问题讨论】:
-
窗口 A 可以调用 B 中的方法(类似于
close(true)),因此 B 知道在调用void B::closeEvent(QCloseEvent *event)时它必须关闭。