PyQt5单⾏⽂本框(QLineEdit)、多⾏纯⽂本框
(QPlainTextEdit)、。。。
⼀、单⾏⽂本框
QLineEdit 是只能单⾏编辑的⽂本框,也叫单⾏输⼊框
1. 信号:⽂本被修改
当⽂本框中的内容被键盘编辑,被点击就会发出 textChanged 信号,可以这样指定处理该信号的函数
Qt 在调⽤这个信号处理函数时,传⼊的参数就是⽂本框⽬前的内容字符串
2. 信号:按下回车键
当⽤户在⽂本框中任何时候按下回车键,就会发出 returnPressed 信号
有时我们需要处理这种情况,⽐如登录界⾯,⽤户输完密码直接按回车键就进⾏登录处理,⽐再⽤⿏标点击登录按钮快捷的多,可以指定处理 returnPressed 信号,如下所⽰
注意:只有单⾏输⼊框才有 returnPressed ⽅法,多⾏输⼊框则没有该⽅法,强⾏使⽤则报错
3. ⽅法:获取⽂本
通过 text ⽅法获取编辑框内的⽂本内容,如下所⽰
text = ()
print(text)
4. ⽅法:设置提⽰
通过 setPlaceholderText ⽅法可以设置提⽰⽂本内容,如下所⽰
line.setPlaceholderText("请输⼊⽤户名")
5. ⽅法:设置⽂本
通过 setText ⽅法设置编辑框内的⽂本内容为参数⾥⾯的⽂本字符串,但是会覆盖原来所有的内容(原来的所有内容会被清除),例如
line.setText("哈哈哈")
6. ⽅法:插⼊⽂本
通过 insert ⽅法在编辑框内插⼊指定的字符串,该⽅法与setText类似,不同的是,该⽅法不会覆盖原来的内容,⽽是追加,在原有的内容末尾添加字符串
line.insert("你好呀!")
7. ⽅法:清除所有⽂本
clear ⽅法可以清除编辑框内所有的⽂本内容,例如
line.clear()    # 会删除编辑框内所有的内容
8. ⽅法:拷贝⽂本到剪贴板
copy ⽅法可以拷贝当前选中⽂本到剪贴板,例如
9. ⽅法:粘贴剪贴板⽂本
paste ⽅法可以把剪贴板内容,拷贝到编辑框当前光标所在处,例如
line.paste()
⼆、多⾏纯⽂本框
多⾏⽂本框在 QWidget ⾥⾯有两个:QPlainTextEdit(纯⽂本框)和 QTextEdit(富⽂本框)
我们⽤的最多的就是纯⽂本框,⽽ QPlainTextEdit 是可以多⾏的纯⽂本编辑框
1. 信号:⽂本被修改
与单⾏⽂本框⼀样,当⽂本框中的内容被键盘编辑,被点击就会发出 textChanged 信号,可以这样指定处理该信号的函数
t(function)text align center
2. 信号:光标位置改变
当⽂本框中的光标位置变动,就会发出 cursorPositionChanged 信号,可以这样指定处理该信号的函数
more_t(function)
3. ⽅法:获取⽂本
与单⾏⽂本框不同,多⾏⽂本框通过 toPlainText ⽅法获取编辑框内的⽂本内容
test = PlainText()
print(test)
4. ⽅法:获取选择⽂本
# 获取 QTextCursor 对象
textcursor = Cursor()
select_text = textcursor.selectedText()
5. ⽅法:设置提⽰
与单⾏⽂本⼀样,多⾏⽂本设置提⽰通过 setPlaceholderText ⽅法可以设置提⽰⽂本内容
more_edit.setPlaceholderText("你好呀!")
6. ⽅法:设置⽂本
与单⾏⽂本框不同,多⾏⽂本设置⽂本通过 setPlainText ⽅法设置编辑框内的⽂本内容为参数⾥⾯的⽂本字符串,光标任然在最开始的位置
more_edit.setPlainText("哈哈哈")
原来的所有内容会被清除
7. ⽅法:在光标处插⼊⽂本
通过 insertPlainText 插⼊指定内容,该⽅法与 setPlainText 不同,该⽅法不会覆盖原来的内容,⽽是追加,在原来的⽂本内容后⾯追加参数⾥⾯的字符串
more_edit.insertPlainText("python")
注意:这种⽅法不会在添加⽂本前⾃动换⾏
8. ⽅法:在末尾添加⽂本
通过 appendPlainText ⽅法在编辑框末尾添加⽂本内容
more_edit.appendPlainText("你好呀")
注意:这种⽅法会在添加⽂本前⾃动换⾏,然后添加参数⾥⾯的字符串
9. ⽅法:清除所有⽂本
clear ⽅法可以清除编辑框内所有的⽂本内容
more_edit.clear()      # 该⽅法会清除编辑框内所有的内容
10. ⽅法:拷贝⽂本到剪贴板
copy ⽅法可以拷贝当前选中⽂本到剪贴板
py()
11. ⽅法:粘贴剪贴板⽂本
paste ⽅法可以把剪贴板内容,拷贝到编辑框当前光标所在处
more_edit.paste()
三、⽂本浏览框
QTextBrowser 是只能查看⽂本控件
通常⽤来显⽰⼀些操作⽇志信息、或者不需要⽤户编辑的⼤段⽂本内容
该控件获取⽂本、设置⽂本、清除⽂本、剪贴板复制粘贴等等,都和上⾯介绍的多⾏纯⽂本框是⼀样的
下⾯我们主要讲解不同点
1. ⽅法:在末尾添加⽂本
通过 append ⽅法在编辑框末尾添加⽂本内容,在添加⽂本前,⾃动换⾏,再添加⽂本
browsertext.append("你好")
有时,浏览框⾥⾯的内容长度超出了可见范围,我们在末尾添加了内容,往往希望控件⾃动翻滚到当前添加的这⾏
可以通过 ensureCursorVisible ⽅法来实现
browsertext.append("你好")
2. ⽅法:再光标处插⼊⽂本
通过 insertPlainText ⽅法在编辑框末尾添加⽂本内容
browsertext.insertPlainText("哈哈哈")
注意:这种⽅法不会在添加⽂本前⾃动换⾏
四、标签
QLabel 就是常见的标签,可以⽤来显⽰⽂字(包括纯⽂本和富⽂本)、图⽚甚⾄动画
内容设置
纯⽂本将字符串传递给 setText()
富⽂本将富⽂本传递给 setText()
图⽚将 QPixmap 对象传递给 setPixmap()
动画将 QMovie 对象传递给 setMovie()
数字将 int或 double数字传递给 setNum(),将数字转为纯⽂本
空与纯⽂本相同,这是默认的,由 clear()设置
1. ⽅法:改变⽂本
代码中可以使⽤ setText ⽅法来改变标签⽂本内容,例如
label.setText("我是⼀个标签")
2. 显⽰图⽚
QLabel 可以⽤来显⽰图⽚,有时⼀个图⽚可以让界⾯好看很多,如下图所⽰
pix = QPixmap("logo1.png")
label.setPixmap(pix)
3. 显⽰换⾏
当QLabel内容较多的时候,⾥⾯的内容可以换⾏
将 WordWrap 的属性设置为 True,实现⾃动换⾏,默认是不能⾃动换⾏的
label = QLabel(QWidget)
label.setWordWarp(True)
4. 对齐⽅式
QLabel内容的对齐⽅式:这⾥我们给出了三个:左中、中间、右中
⽔平标志是:
对齐⽅式描述
Qt.AlignLeft靠左边缘对齐
Qt.AlignRight靠右边缘对齐
Qt.AlignHCenter⽔平居中
垂直标志是:
对齐⽅式描述
Qt.AlignTop靠上端对齐
Qt.AlignBotton靠下端对齐
Qt.AlignVCenter垂直居中
⼀次最多可以使⽤⼀个⽔平和⼀个垂直标志。当然凡是也有例外,下⾯的就可以可表现出两个属性。
Qt.AlignCenter:⽔平、垂直居中