问题描述
|
http://doc.qt.io/qt-5/qdesktopwidget.html#obtaining-a-desktop-widget
QApplication :: desktop()函数用于获取QDesktopWidget的实例。
我不明白为什么您可以直接使用
QDesktopWidget()
类来使用QApplication::desktop()
。
之间有什么区别
desktop = QApplication.desktop()
和
desktop = QDesktopWidget()
它们看起来一样。但是Windows(OS)使用QDesktopWidget()
时会在退出时引发警告。因此应该有所不同。
它们有何不同?
解决方法
它们看起来可能相同,但事实并非如此。在C ++方面,静态desktop()函数使用单例模式-只有一个桌面,并且由一个静态变量表示,该变量可以(也可以不)根据请求创建。 QDesktopWidget()是一个构造函数,“外部世界”无法访问该构造函数以确保单例的唯一性。