我不明白设置父级有什么好处QMessageBox
,例如在以下代码中:
void mainWindow::showMessage(QString msg) {
QMesageBox::information(this, "title", msg); //'this' is parent
}
有人可以帮助我吗?
大概有几件事。首先QMessageBox
继承自QDialog
. Since QDialog
有父母的概念,QMessageBox
为了保持一致性也应该如此。
具体来说,文档说:
父级被传递给 QDialog 构造函数。
至少,新对话框通常显示在其父对话框顶部的中心位置。
然而,还有更多!
根据文档,它可以影响实际功能。例如:
在 Mac OS X 上,如果您希望消息框显示为 Qt::Sheet
它是parent,将消息框的窗口模态设置为 Qt::WindowModal
或使用 open()。否则,消息框将是一个标准对话框。
此外,还有“窗口模态”和“应用程序模态”的概念,前者仅阻止父窗口中的输入,后者阻止整个应用程序的输入。这显然需要了解父母的概念。
最后,对于某些static
函数如::about(...)
,它寻找要使用的图标的第一个地方是parent->icon()
.
因此,如果您想获得良好的特定于平台的行为并使您的代码跨平台,那么最好将一个健全的父级传递给它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)