функция для получения экземпляра класса VS, вызывающего класс напрямую - PullRequest
0 голосов
/ 12 июня 2011

http://doc.qt.io/qt-5/qdesktopwidget.html#obtaining-a-desktop-widget

Функция QApplication :: desktop () используется для получения экземпляра QDesktopWidget.

Я не понимаю, почему вы должны использоватьQApplication::desktop(), когда вы можете просто позвонить QDesktopWidget() классу.
В чем разница между

desktop = QApplication.desktop() 

и

desktop = QDesktopWidget() 

Они выглядят одинаково.Но Windows (OS) выдает предупреждение при выходе при использовании QDesktopWidget().Так что должна быть какая-то разница.

Чем они отличаются?

1 Ответ

0 голосов
/ 12 июня 2011

Они могут выглядеть одинаково, но не так.Со стороны C ++ статическая функция desktop () использует шаблон синглтона - существует только один рабочий стол, и он представлен статической переменной, которая может (или не может) создаваться по запросу.QDesktopWidget () - конструктор, который не доступен «внешнему миру», чтобы гарантировать уникальность синглтона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...