Qt.AlignBottom:垂直方向靠下对齐
Qt.AlignVCenter:垂直方向居中对齐
* [ ] setEchoMode() 设置文本框的显示格式,允许输入的文本显示格式的值可以是:
QLineEdit.Normal:正常显示所输入的字符,此为默认选项
QLineEdit.NoEcho:不显示任何输入的字符,常用于密码类型的输入,且长度保密
QLineEdit.Password:显示与平台相关的密码掩饰字符,而不是实际输入的字符
QLineEdit.PasswordEchoOnEdit:在编辑时显示字符,负责显示密码类型的输入
* [ ] setPlaceholderText() 设置文本框显示文字
* [ ] setMaxLength() 设置文本框所允许输入的最大字符数
* [ ] setReadOnly() 设置文本为只读
* [ ] setText() 设置文本框的内容
* [ ] text() 返回文本框的内容
* [ ] setDragEnable() 设置文本框是否接受拖动
* [ ] selectAll() 全选
* [ ] setFocus() 得到焦点
* [ ] setInputMask() 设置掩码
* [ ] setValidator() 设置文本框的验证器(验证规则),将限制任意可能输入的文本,可用的校验器为
QIntValidator:限制输入整数
QDoubleValidator:限制输入浮点数
QRegexpValidator:检查输入是否符合正则表达式
QLineEdit类中常用信号如下
* [ ] selectionChanged只要选择改变了,这个信号就会发射
* [ ] textChanged当修改文本内容时,这个信号就会发射
* [ ] editingFinished当编辑文本结束时,这个信号就会发射
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIntValidator, QFont, QDoubleValidator
from PyQt5.QtWidgets import QApplication, QDesktopWidget, QWidget, QLineEdit, QFormLayout
class MyWin(QWidget):
def __init__(self):
super(MyWin, self).__init__()
self.MyUi()
def MyUi(self):
self.resize(600, 400)
self.setWindowTitle("我的窗口")
self.center()
# 显示文本使用自定义字体,右对齐,允许输入整数
# 创建文本
e1 = QLineEdit()
# 设置文本校验器为整数,只有输入整数才为有效值
e1.setValidator(QIntValidator())
# 设置允许输入的最大字符数
e1.setMaxLength(4)
# 设置文本靠右对齐
e1.setAlignment(Qt.AlignRight)
# 设置文本的字体和字号大小
e1.setFont(QFont('Arial', 20))
# 限制输入小数点后两位
# 创建文本
e2 = QLineEdit()
# 设置浮点型校验器,有效范围(0.99-99.99),保留两位小数
e2.setValidator(QDoubleValidator(0.99, 99.99, 2))
# 表单布局
flo = QFormLayout()
# 添加名称及控件到布局中
flo.addRow('integer validator', e1)
flo.addRow('Double Validator', e2)
# 需要一个输入掩码应用于电话号码
# 创建文本
e3 = QLineEdit()
# 定义文本输入掩码,9:ASCII字母字符是必须输入的(0-9)
e3.setInputMask('+99_9999_999999')
flo.addRow('Input Mask', e3)
# 需要发射信号textChanged,链接到槽函数textChanged()
# 创建文本
e4 = QLineEdit()
# 文本修改信号发射与槽函数的绑定
e4.textChanged.connect(self.textchanged)
flo.addRow('Text changed', e4)
# 设置显示模式EchoMode为Password需要发射editingfinished信号连接到槽函数enterPress(),一旦用户按下回车键,该函数就会执行
e5 = QLineEdit()
# 设置文本框显示的格式,QLineEdit.Password:显示密码掩码字符,而不是实际输入的字符
e5.setEchoMode(QLineEdit.Password)
flo.addRow('Password', e5)
# 显示一个默认的文本,不能编辑,设置为只读
# 创建文本框并增添文本框的内容
e6 = QLineEdit('HELLO PyQt5')
# 设置属性为只读
e6.setReadOnly(True)
flo.addRow('Read Only', e6)
# 编译完成的信号与槽函数的绑定
e5.editingFinished.connect(self.enterPress)
# 设置窗口的布局
self.setLayout(flo)
# 实现居中方式2
def center(self):
# 获得屏幕坐标系
screen = QDesktopWidget().screenGeometry()
# 获得窗口坐标系
size = self.geometry()
# 获得窗口相关坐标
L = (screen.width() - size.width()) // 2
T = (screen.height() - size.height()) // 2
# 移动窗口使其居中
self.move(L, T)
def textchanged(self, text):
print('输入的内容为' + text)
def enterPress(self):
print('已输入')
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWin()
w.show()
sys.exit(app.exec_())
![](https://img.kancloud.cn/00/dc/00dcfc5b8f3b6410a646e5e749d4aa5e_1516x558.png)
**QTextEdit(文本域)**
QTextEdit是一个多行文本框编辑控件,可以显示、编辑多行文本编辑内容,当文本内容超出控件显示范围时,可以显示水平和垂直滚动条,QTextEdit不仅可以显示文本,还可以显示HTML文档。
QTextEdit类中常用的方法
* [ ] setPlainText() 设置多行文本框的内容
* [ ] toPlainText() 返回多行文本框的文本内容
* [ ] setHtml() 设置多行文本框的文本内容为HTML文档,HTML文档是描述网页的
* [ ] toHtml() 返回多行文本框的HTML内容
* [ ] clear() 清除多行文本框的内容
QTextEdit类中常用的信号和QLineEdit类差不多
import sys
from PyQt5.QtWidgets import QApplication, QDesktopWidget, QWidget, QTextEdit
class MyWin(QWidget):
def __init__(self):
super(MyWin, self).__init__()
self.MyUi()
def MyUi(self):
self.resize(400, 400)
self.setWindowTitle("我的窗口")
self.center()
# 创建一个文本域
self.textEdit = QTextEdit(self)
self.textEdit.resize(300, 100)
self.textEdit.move(50, 30)
# 创建一个文本域
self.textEdit2 = QTextEdit(self)
self.textEdit2.resize(300, 150)
self.textEdit2.move(50, 150)
# 槽函数打印和传递
self.textEdit.textChanged.connect(self.displayText)
def displayText(self):
self.textEdit2.setText(self.textEdit.toPlainText())
print(self.textEdit.toPlainText())
# 实现居中方式2
def center(self):
# 获得屏幕坐标系
screen = QDesktopWidget().screenGeometry()
# 获得窗口坐标系
size = self.geometry()
# 获得窗口相关坐标
L = (screen.width() - size.width()) // 2
T = (screen.height() - size.height()) // 2
# 移动窗口使其居中
self.move(L, T)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWin()
w.show()
sys.exit(app.exec_())
![](https://img.kancloud.cn/d7/78/d77800693cf5fe9a5eb03d9253ee4eea_1877x600.png)
**QTextBrowser(文本阅览框)**
文本阅览框QTextBrowser() 用法和QTextEdit(文本域)相同