PyQt5:居中对齐标签

25 投票
5 回答
94357 浏览
提问于 2025-04-19 12:51

这件事应该很简单,但我就是找不到答案。

我试过这个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_())

撰写回答