Python PyQt5类型在QLineEdit的中间

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (319)

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

提问于
用户回答回答于

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()

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励