11.PyQt5【基本组件】单行输入框-QLineEdit

一、前言

QLineEdit是最常用的输入字段。它提供了一个框,可以在其中输入一行文本。

二、学习目标

1.QLineEdit常用方法

2.QLineEdit常用信号

3.QLineEdit组件的应用

三、知识点

1.【QLineEdit常用方法】

方法 描述
text() 返回文本框内容
setText() 设置文本框内容
setAlignment() 按固定值方式对齐文本
Qt.AlignLeft:水平方向靠左对齐
Qt.AlignRight:水平方向靠右对齐
Qt.AlignCenter:水平方向居中对齐
Qt.AlignJustify:水平方向调整间距两端对齐
Qt.AlignTop:垂直方向靠上对齐
Qt.AlignBottom:垂直方向靠下对齐
Qt.AlignVcenter:垂直方向居中对齐
setReadOnly() 设置文本框为只读
setPlaceholderText() 设置文本框浮显的文字
setMaxLength() 设置文本框所允许输入的最大字符数
setInputMask() 设置掩码
setValidator() 设置文本框的验证规则,校验器如下:
QIntValidator:限制输入整数
QDoubleValidator:限制输入浮点数
QRegexpValidator:检查输入是否组合正则表达式
clear() 清除文本框内容
setEchoMode() 设置文本框显示格式
QLineEdit.Normal:正常显示所输入的字符,此为默认
QlineEdit.NoEcho:不显示热河输入的字符,常用于密码类型的输入,且其密码长度需要保密时
QlineEdit.Password:显示与平台相关的密码掩码字符,而不是实际输入的字符
QlineEdit.PasswordEchoOnEdit:在编辑室显示字符,负责显示密码类型的输入
setDragEnabled() 设置文本框是否接受拖动
selectAll() 全选
cursorPositionAt() 返回光标的位置
selectedText() 得到当前被选中的文本
setClearButtonEnabled() 设置当行编辑内容不为空时是否显示清除按钮。
setFrame() 设置边框,True 存在边框(默认),False 去掉边框
setCompleter() 设置行编辑控件补全模板

2.【QLineEdit常用信号】

信号 说明
textChanged 当修改文本内容时,这个信号会被发射
textEdited 当文本被编辑时,就会发射这个信号
returnPressed 光标在行编辑框内时,点击回车键即发射信号
selectionChanged 当选择的文本内容改变了,这个信号就会被发射
editingFinished 当按返回或者回车键时,或者行编辑失去焦点时,这个信号会被发射
cursorPositionChanged 当焦点,即光标位置改变就发射信号
inputRejected 当用户输入不合法字符时,将发出此信号。前提要 setValidator() 等设置合法字符范围,Qt 5.12 版本新增。

3.【QLineEdit组件的应用】

import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit


class QmyWidget(QWidget):

    def __init__(self, parent=None):
        super().__init__(parent)  # 调用父类的构造函数,创建QWidget窗体
        self.setupUi()

    def setupUi(self):
        """页面初始化"""
        # 设置窗体大小及标题
        self.resize(500, 400)
        self.setWindowTitle("QLineEdit组件示例")
        # 创建布局
        self.layout = QVBoxLayout()

        # QLineEdit组件定义
        self.line1 = QLineEdit(self)
        self.line1.setText("第一个单行文本")
        self.line2 = QLineEdit('第二个单行文本', self)
        # QLineEdit组件设置
        self.line1.setReadOnly(True)          # line1设置只读
        self.line2.setPlaceholderText("请输入单行文本!")
        # QLineEdit关联信号
        self.line2.editingFinished.connect(self.on_line2_editingFinished)

        # 将组件添加到布局中
        self.layout.addWidget(self.line1)
        self.layout.addWidget(self.line2)
        # 为窗体添加布局
        self.setLayout(self.layout)

    def on_line2_editingFinished(self):
        """line2组件槽函数"""
        print("line2文本被修改啦!")


if __name__ == '__main__':
    app = QApplication(sys.argv)
    myMain = QmyWidget()
    myMain.show()
    sys.exit(app.exec_())
  • 关键代码

            # QLineEdit组件定义
            self.line1 = QLineEdit(self)
            self.line1.setText("第一个单行文本")
            self.line2 = QLineEdit('第二个单行文本', self)
            # QLineEdit组件设置
            self.line1.setReadOnly(True)          # line1设置只读
            self.line2.setPlaceholderText("请输入单行文本!")
            # QLineEdit关联信号
            self.line2.editingFinished.connect(self.on_line2_editingFinished)
    

    定义两个单行文本组件,分别为line1设置只读,为line2设置提示文本(只有为空时显示),并为line2关编辑信号。editingFinished编辑信号是在全部文本输入完成后触发;textChanged信号是每输入完一个字符则触发。


posted @ 2023-01-16 10:38  测开星辰  阅读(344)  评论(0编辑  收藏  举报