Qt 没有属性“AlignCenter”[重复]

2023-12-25

我在 Python 3.5 上使用 PyQt5。

我想做一个QLabel带有居中文本的小部件。因此,我称之为setAlignment方法与AlignCenter flag.

这是一个 MWE:

import sys
from PyQt5 import QtWidgets, Qt

app = QtWidgets.QApplication(sys.argv)

label = QtWidgets.QLabel()
label.setAlignment(Qt.AlignCenter)

但是,我收到以下错误:

label.setAlignment(Qt.AlignCenter)

AttributeError:模块“PyQt5.Qt”没有属性“AlignCenter”

But the Qt.AlignCenter,以及其他对齐标志,在中引用PyQt 的文档 http://pyqt.sourceforge.net/Docs/PyQt4/qt.html#AlignmentFlag-enum, 也Qt 的文档 http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum.

我究竟做错了什么?


The AttributeError所提出的表明PyQt5.Qt没有名为的属性AlignCenter.

这可以在 Python 的交互式帮助中轻松确认:

>>> from PyQt5 import Qt
>>> help(Qt)

help将显示一堆方法,但快速搜索“对齐”将给出零结果。

事实上,AlignCenter标志不属于PyQt5.Qt模块,但到PyQt5.QtCore.Qt class.

因此,改变

label.setAlignment(Qt.AlignCenter)

into

label.setAlignment(QtCore.Qt.AlignCenter)

加上正确的导入就可以完成工作。


下面的代码表明这确实有效。我必须在原始代码中添加一些细节才能使居中可见。

import sys
from PyQt5 import QtWidgets, QtCore

app = QtWidgets.QApplication(sys.argv)

label = QtWidgets.QLabel()
label.setGeometry(100, 100, 200, 100)
label.setText("Hello world!")
label.setAlignment(QtCore.Qt.AlignCenter)

label.show()

exit(app.exec_())

注释掉对齐方式:

import sys
from PyQt5 import QtWidgets, QtCore

app = QtWidgets.QApplication(sys.argv)

label = QtWidgets.QLabel()
label.setGeometry(100, 100, 200, 100)
label.setText("Hello world!")
# label.setAlignment(QtCore.Qt.AlignCenter)

label.show()

exit(app.exec_())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 没有属性“AlignCenter”[重复] 的相关文章

随机推荐