模块“PyQt6.QtWidgets”没有属性“QDesktopWidget”

Min*_*ina 7 python pyqt python-3.x python-3.9 pyqt6

我尝试运行此代码,但它总是收到此 AttributeError,我搜索了很多网站但没有任何答案。

QtWidgets.QDesktopWidget().availableGeometry().center()
AttributeError: module 'PyQt6.QtWidgets' has no attribute 'QDesktopWidget'
Run Code Online (Sandbox Code Playgroud)

我的代码:

from PyQt6 import QtCore, QtGui, QtWidgets

class Ui_Form(object):
    def center(self):
        qr = Form.frameGeometry()
        cp = QtWidgets.QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())
Run Code Online (Sandbox Code Playgroud)

我正在使用 PyQt6 版本 6.1.0,Python 3.9.5

eyl*_*esc 13

来自文档:

QDesktopWidget 和 QApplication::desktop()
QDesktopWidget 在 Qt 5 中已被弃用,并在 Qt 6 中与 QApplication::desktop() 一起被删除。

QScreen 提供了等效的功能来查询有关可用屏幕、形成虚拟桌面的屏幕以及屏幕几何形状的信息。

使用 QWidget::setScreen() 在特定显示器上创建 QWidget;请注意,这不会将小部件移动到虚拟桌面设置中的屏幕上。

然后使用:

cp = QtGui.QGuiApplication.primaryScreen().availableGeometry().center()
Run Code Online (Sandbox Code Playgroud)