Add a note to QDialog::exec() to prefer open() instead

QDialog::exec() has a number of problems due to spinning an inner
event loop (to counteract its being synchronous). We've had
QDialog::open() as a better alternative for a long while now,
so encourage people to use that instead.

Change-Id: I51a69a018dcbf6133adb6c2f69c7caf442008b36
Reviewed-by: Martin Smith <martin.smith@qt.io>
This commit is contained in:
Giuseppe D'Angelo 2018-05-07 14:15:40 +02:00 committed by hjk
parent 4f421c274b
commit 2be4686404

View File

@ -514,6 +514,13 @@ void QDialog::open()
interaction with the parent window is blocked while the dialog is open.
By default, the dialog is application modal.
\note Avoid using this function; instead, use \c{open()}. Unlike exec(),
open() is asynchronous, and does not spin an additional event loop. This
prevents a series of dangerous bugs from happening (e.g. deleting the
dialog's parent while the dialog is open via exec()). When using open() you
can connect to the finished() signal of QDialog to be notified when the
dialog is closed.
\sa open(), show(), result(), setWindowModality()
*/