Qt has no attribute 'AlignCenter'
本问题已经有最佳答案,请猛点这里访问。
我在python 3.5上使用pyqt5。
我想制作一个以文本为中心的
这是一个mwe:
1 2 3 4 5 6 7 | import sys from PyQt5 import QtWidgets, Qt app = QtWidgets.QApplication(sys.argv) label = QtWidgets.QLabel() label.setAlignment(Qt.AlignCenter) |
但是,我得到以下错误:
label.setAlignment(Qt.AlignCenter)
AttributeError: module 'PyQt5.Qt' has no attribute 'AlignCenter'
号
但是,在Pyqt的文档和qt的文档中引用了
我做错什么了?
提出的
这很容易在python的交互式帮助中得到确认:
1 2 | >>> from PyQt5 import Qt >>> help(Qt) |
实际上,
因此,改变
1 | label.setAlignment(Qt.AlignCenter) |
号
进入之内
1 | label.setAlignment(QtCore.Qt.AlignCenter) |
随着正确的进口将做这项工作。
下面的代码显示这确实有效。我必须在原始代码中添加一些细节以使中心可见。
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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_()) |
。
。
在对中注释掉后:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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_()) |
氧化镁