当前位置:  开发笔记 > 编程语言 > 正文

Qt没有属性“ AlignCenter”

如何解决《Qt没有属性“AlignCenter”》经验,为你挑选了1个好方法。

我在Python 3.5上使用PyQt5。

我想制作一个QLabel带有居中文本的小部件。因此,我setAlignmentAlignCenter标志调用该方法。

这是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”

但是PyQt的文档和Qt的文档中Qt.AlignCenter都引用了以及其他对齐标记。

我究竟做错了什么?



1> Right leg..:

AttributeError所提出告诉PyQt5.Qt有没有所谓的属性AlignCenter

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

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

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

实际上,该AlignCenter标志不属于PyQt5.Qt模块,而是属于PyQt5.QtCore.Qt类。

因此,改变

label.setAlignment(Qt.AlignCenter)

进入

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

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有