QLineEdit中间的Python PyQt5类型

时间:2018-07-30 21:31:24

标签: python user-interface pyqt5

我想知道是否有办法更改QLineInput上的settigns,以便当用户开始键入文本时,该文本显示在QLine输入的中心而不是左侧。

1 个答案:

答案 0 :(得分:0)

  

Qt :: AlignCenter-(AlignVCenter | AlignHCenter)在两个维度上居中。

from PyQt5 import Qt

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

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

        layout = Qt.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 = Qt.QApplication([])
    mw = Widget()
    mw.show()
    app.exec()

enter image description here