PyQt5:居中对齐标签
这件事应该很简单,但我就是找不到答案。
我试过这个PyQt4的代码:
label.setAlignment(Qt.AlignCenter)
但是这个方法不行。
5 个回答
1
我找到了一种用HTML进行翻译的变通方法!
self.smallPWDisp.setText(_translate('Window', '<html><head/><body><p align=\'center\'>%s is your new password!</p></body></html>' % smallPassword))
3
AlignCenter的值是在 PyQt5.QtCore.Qt.AlignCenter
这个地方定义的,其他的对齐值也是在 QtCore.Qt
里定义的。QtCore.Qt
模块还包含一些基本的值,比如键盘上的CTRL、SHIFT、ALT等。
8
from PyQt5 import QtCore
# to center align a label
self.your_label.setAlignment(QtCore.Qt.AlignCenter)
想了解更多信息,可以查看下面这个StackOverflow的讨论帖子:Qt没有'AlignCenter'这个属性
8
我也遇到过同样的问题。
可以试试这个:
Qt.Qt.AlignCenter.
26
我觉得问题可能出在标签是居中的,但它并没有填满你想象中的空间。你可以通过改变标签的背景颜色来验证这一点。下面这个例子在我的Windows 7上是可以正常工作的:
import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class Window(QWidget):
def __init__(self, *args, **kwargs):
QWidget.__init__(self, *args, **kwargs)
self.label = QLabel("Test", self)
self.label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.label.setAlignment(Qt.AlignCenter)
self.label.setStyleSheet("QLabel {background-color: red;}")
self.button = QPushButton("Test", self)
self.layout = QGridLayout()
self.layout.addWidget(self.label, 0, 0)
self.layout.addWidget(self.button, 0, 1)
self.setLayout(self.layout)
self.show()
app = QApplication(sys.argv)
win = Window()
sys.exit(app.exec_())