PyQt5: Center align a label

Question:

This should be really simple but I just can’t find an answer for this.
I’ve tried this PyQt4 code:

label.setAlignment(Qt.AlignCenter)

But that does not work.

Asked By: Lachlan

||

Answers:

I think the problem may be that the label is centered, but it does not fill the space you think it does. You can verify by changing the label background color. The following example works for me on 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_())
Answered By: Fenikso

I’ve got a workaround with HTML translating!

self.smallPWDisp.setText(_translate('Window', '<html><head/><body><p align='center'>%s is your new password!</p></body></html>' % smallPassword))
Answered By: Lachlan

I had the same problem.

Try using:

Qt.Qt.AlignCenter.
Answered By: 91cobra

The value of AlignCenter was defined at PyQt5.QtCore.Qt.AlignCenter,
the other Align value was also define at QtCore.Qt.
QtCore.Qt Module also contain core value such as keyboard value CTRL, SHIFT, ALT etc.

Answered By: Caching
from PyQt5 import QtCore

# to center align a label 

self.your_label.setAlignment(QtCore.Qt.AlignCenter)

For more information, please follow the following StackOverflow thread:
Qt has no attribute 'AlignCenter'

Answered By: Mujeeb Ishaque
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.