问题描述
我尝试运行此代码,但它总是出现此 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
解决方法
QDesktopWidget 和 QApplication::desktop()
QDesktopWidget 已经
在 Qt 5 中被弃用,并在 Qt 6 中被删除,连同
QApplication::desktop().
QScreen 提供等效的功能来查询信息 关于可用屏幕、构成虚拟桌面的屏幕,以及 屏幕几何形状。
使用 QWidget::setScreen() 在特定显示器上创建 QWidget; 请注意,这不会将小部件移动到虚拟桌面中的屏幕 设置。
然后使用:
cp = QtGui.QGuiApplication.primaryScreen().availableGeometry().center()