微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决模块“PyQt6.QtWidgets”没有属性“QDesktopWidget”

我尝试运行此代码,但它总是出现此 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

解决方法

来自the docs:

QDesktopWidget 和 QApplication::desktop()
QDesktopWidget 已经 在 Qt 5 中被弃用,并在 Qt 6 中被删除,连同 QApplication::desktop().

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

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

然后使用:

cp = QtGui.QGuiApplication.primaryScreen().availableGeometry().center()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。