2

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

QtWidgets.QDesktopWidget().availableGeometry().center()
AttributeError: module 'PyQt6.QtWidgets' has no attribute 'QDesktopWidget'

我的代码:

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())

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

4

1 回答 1

4

文档:

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

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

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

然后使用:

cp = QtGui.QGuiApplication.primaryScreen().availableGeometry().center()
于 2021-06-18T18:38:11.420 回答