如何在QLineEdit中居中文本? [重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我搜索过但无法找到QLineEdit内部文本对齐的解决方案

例:

https://i.imgur.com/XmmxqSf.png

python python-3.x pyqt pyqt5 qlineedit
1个回答
0
投票

alignment:Qt :: Alignment

此属性保持行编辑的对齐方式

这里允许水平和垂直对齐,Qt :: AlignJustify将映射到> Qt :: AlignLeft。

默认情况下,此属性包含Qt :: AlignLeft和Qt :: AlignVCenter的组合。

from PyQt5 import QtWidgets, QtCore

class Widget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()

        self.line_edit = QtWidgets.QLineEdit()
        self.line_edit.setAlignment(QtCore.Qt.AlignCenter)              # <-----
        self.line_edit.textChanged.connect(self.on_text_changed)

        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(self.line_edit)

        self.setLayout(layout)

    def on_text_changed(self, text):
        width = self.line_edit.fontMetrics().width(text)
        self.line_edit.setMinimumWidth(width)

if __name__ == '__main__':
    app = QtWidgets.QApplication([])
    mw = Widget()
    mw.show()
    app.exec()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.