web-dev-qa-db-ja.com

PyQt5:ラベルを中央揃えにします

これは本当に単純なはずですが、これに対する答えを見つけることができません。私はこのPyQt4コードを試しました:

label.setAlignment(Qt.AlignCenter)

しかし、それは私に運を与えません。

ありがとう

12

問題はラベルが中央に配置されている可能性があると思いますが、それはあなたが思っているスペースを満たしていません。ラベルの背景色を変更することで確認できます。次の例は、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_())
14
Fenikso

私も同じ問題を抱えていました。

使用してみてください:

Qt.Qt.AlignCenter.
4
91cobra

AlignCenterの値はPyQt5.QtCore.Qt.AlignCenter、他のAlign値もQtCore.QtQtCore.Qtモジュールには、キーボード値CTRL、SHIFT、ALTなどのコア値も含まれています。

2
Caching

HTML変換の回避策があります!

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