PyQt5 单行文本框(QLineEdit)、多行纯文本框(QPlainTextEdit)、文本浏览框(QTextBrowser)、标签(QLabel)


一、单行文本框

  • QLineEdit 是只能单行编辑的文本框,也叫单行输入框


  1. 信号:文本被修改
  • 当文本框中的内容被键盘编辑,被点击就会发出 textChanged 信号,可以这样指定处理该信号的函数

line.textChanged.connect(function)

  • Qt 在调用这个信号处理函数时,传入的参数就是文本框目前的内容字符串
  1. 信号:按下回车键
  • 当用户在文本框中任何时候按下回车键,就会发出 returnPressed 信号

  • 有时我们需要处理这种情况,比如登录界面,用户输完密码直接按回车键就进行登录处理,比再用鼠标点击登录按钮快捷的多,可以指定处理 returnPressed 信号,如下所示


line.returnPressed.connect(function)

  • 注意:只有单行输入框才有 returnPressed 方法,多行输入框则没有该方法,强行使用则报错
  1. 方法:获取文本
  • 通过 text 方法获取编辑框内的文本内容,如下所示

text = line.text()
print(text)

  1. 方法:设置提示
  • 通过 setPlaceholderText 方法可以设置提示文本内容,如下所示

line.setPlaceholderText("请输入用户名")

  1. 方法:设置文本
  • 通过 setText 方法设置编辑框内的文本内容为参数里面的文本字符串,但是会覆盖原来所有的内容(原来的所有内容会被清除),例如

line.setText("哈哈哈")

  1. 方法:插入文本
  • 通过 insert 方法在编辑框内插入指定的字符串,该方法与setText类似,不同的是,该方法不会覆盖原来的内容,而是追加,在原有的内容末尾添加字符串

line.insert("你好呀!")

  1. 方法:清除所有文本
  • clear 方法可以清除编辑框内所有的文本内容,例如

line.clear()    # 会删除编辑框内所有的内容

  1. 方法:拷贝文本到剪贴板
  • copy 方法可以拷贝当前选中文本到剪贴板,例如

line.copy()

  1. 方法:粘贴剪贴板文本
  • paste 方法可以把剪贴板内容,拷贝到编辑框当前光标所在处,例如

line.paste()


二、多行纯文本框

  • 多行文本框在 QWidget 里面有两个:QPlainTextEdit(纯文本框) 和 QTextEdit(富文本框)

  • 我们用的最多的就是纯文本框,而 QPlainTextEdit 是可以 多行 的纯文本编辑框


  1. 信号:文本被修改
  • 与单行文本框一样,当文本框中的内容被键盘编辑,被点击就会发出 textChanged 信号,可以这样指定处理该信号的函数

more_edit.textChanged.connect(function)

  1. 信号:光标位置改变
  • 当文本框中的光标位置变动,就会发出 cursorPositionChanged 信号,可以这样指定处理该信号的函数

more_edit.cursorPositionChanged.connect(function)

  1. 方法:获取文本
  • 与单行文本框不同,多行文本框通过 toPlainText 方法获取编辑框内的文本内容

test = more_edit.toPlainText()
print(test)

  1. 方法:获取选择文本

# 获取 QTextCursor 对象
textcursor = more_edit.textCursor()
select_text = textcursor.selectedText()

  1. 方法:设置提示
  • 与单行文本一样,多行文本设置提示通过 setPlaceholderText 方法可以设置提示文本内容

more_edit.setPlaceholderText("你好呀!")

  1. 方法:设置文本
  • 与单行文本框不同,多行文本设置文本通过 setPlainText 方法设置编辑框内的文本内容为参数里面的文本字符串,光标任然在最开始的位置

more_edit.setPlainText("哈哈哈")

  • 原来的所有内容会被清除
  1. 方法:在光标处插入文本
  • 通过 insertPlainText 插入指定内容,该方法与 setPlainText 不同,该方法不会覆盖原来的内容,而是追加,在原来的文本内容后面追加参数里面的字符串

more_edit.insertPlainText("python")

  • 注意:这种方法不会在添加文本自动换行
  1. 方法:在末尾添加文本
  • 通过 appendPlainText 方法在编辑框末尾添加文本内容

more_edit.appendPlainText("你好呀")

  • 注意:这种方法会在添加文本 自动换行,然后添加参数里面的字符串
  1. 方法:清除所有文本
  • clear 方法可以清除编辑框内所有的文本内容

more_edit.clear()      # 该方法会清除编辑框内所有的内容

  1. 方法:拷贝文本到剪贴板
  • copy 方法可以拷贝当前选中文本到剪贴板

more_edit.copy()

  1. 方法:粘贴剪贴板文本
  • paste 方法可以把剪贴板内容,拷贝到编辑框当前光标所在处

more_edit.paste()


三、文本浏览框

  • QTextBrowser只能查看文本 控件

  • 通常用来显示一些操作日志信息、或者不需要用户编辑的大段文本内容

  • 官网介绍

  • 该控件 获取文本设置文本清除文本剪贴板复制粘贴 等等, 都和上面介绍的多行纯文本框是一样的

  • 下面我们主要讲解不同点

  1. 方法:在末尾添加文本
  • 通过 append 方法在编辑框末尾添加文本内容,在添加文本,自动换行,再添加文本

browsertext.append("你好")

  • 有时,浏览框里面的内容长度超出了可见范围,我们在末尾添加了内容,往往希望控件自动翻滚到当前添加的这行

  • 可以通过 ensureCursorVisible 方法来实现


browsertext.append("你好")
browsertext.ensureCursorVisible()

  1. 方法:再光标处插入文本
  • 通过 insertPlainText 方法在编辑框末尾添加文本内容

browsertext.insertPlainText("哈哈哈")

  • 注意:这种方法不会在添加文本自动换行

四、标签

  • QLabel 就是常见的标签,可以用来显示文字(包括纯文本和富文本)、图片 甚至动画
内容 设置
纯文本 将字符串传递给 setText()
富文本 将富文本传递给 setText()
图片 QPixmap 对象传递给 setPixmap()
动画 QMovie 对象传递给 setMovie()
数字 intdouble数字传递给 setNum(),将数字转为纯文本
与纯文本相同,这是默认的,由 clear()设置

  1. 方法:改变文本
  • 代码中可以使用 setText 方法来改变标签文本内容,例如

label.setText("我是一个标签")

  1. 显示图片
  • QLabel 可以用来显示图片,有时一个图片可以让界面好看很多,如下图所示

pix = QPixmap("logo1.png")
label.setPixmap(pix)

  1. 显示换行
  • 当QLabel内容较多的时候,里面的内容可以换行

  • WordWrap 的属性设置为 True,实现自动换行,默认是不能自动换行的


label = QLabel(QWidget)
label.setWordWarp(True)

  1. 对齐方式
  • QLabel内容的对齐方式:这里我们给出了三个:左中、中间、右中

  • 水平标志是:

对齐方式 描述
Qt.AlignLeft 靠左边缘对齐
Qt.AlignRight 靠右边缘对齐
Qt.AlignHCenter 水平居中
  • 垂直标志是:
对齐方式 描述
Qt.AlignTop 靠上端对齐
Qt.AlignBotton 靠下端对齐
Qt.AlignVCenter 垂直居中
  • 一次最多可以使用一个水平和一个垂直标志。当然凡是也有例外,下面的就可以可表现出两个属性。
    • Qt.AlignCenter水平、垂直居中


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM