A QMessageBox
создается с флагом окна Qt::Dialog
(и косвенно, Qt::Window
). Это означает, что оно будет рассматриваться как системное окно, даже если для него назначен родительский элемент. Когда вы наберете move()
, он будет расположен в координатах рабочего стола.
Когда вы перемещаете окно сообщения в приведенном выше коде, вы указываете, чтобы оно отображалось в координатах рабочего стола, равных половине ширины и высоты размера основного окна приложения, смещенного относительно исходного положения (верхний левый угол рабочего стола).
Если главное окно вашего приложения имеет размер 400x200, то ваше окно сообщения будет отображаться с координатами рабочего стола 200 100 независимо от того, где находится главное окно приложения.
Если вы сделаете окно своего приложения полноэкранным, а затем отобразите окно сообщения, окно сообщения должно появиться (примерно) в центре экрана вашего рабочего стола. Я говорю грубо, потому что вы указываете позицию левого верхнего угла окна сообщения, а не то, где центр окна сообщения будет казаться.
Если вы хотите, чтобы окно сообщения всегда отображалось в центре экрана, вам нужно использовать информацию, предоставленную QDesktopWidget
, чтобы определить, какими должны быть правильные координаты экрана.