PyQt QLineEdit小部件

PyQt QLineEdit小部件

QLineEdit 对象是最常用的输入字段。它提供一个文本框,可以输入一行文本。要输入多行文本,需要使用 QTextEdit 对象。

下表列出了QLineEdit类的一些重要方法:

以下是QLineEdit最常用的方法:

编号 方法和描述
1 setAlignment() 根据对齐常量对文本进行对齐 Qt.AlignLeft (左对齐) Qt.AlignRight (右对齐) Qt.AlignCenter (居中) Qt.AlignJustify (两端对齐)
2 clear() 清空内容
3 setEchoMode() 控制框内文本的外观。Echomode的值有以下几种: QLineEdit.Normal(正常模式) QLineEdit.NoEcho(不显示输入) QLineEdit.Password(密码模式) QLineEdit.PasswordEchoOnEdit(编辑时显示密码模式)
4 setMaxLength() 设置输入的最大字符数
5 setReadOnly() 使文本框不可编辑
6 setText() 通过程序设置文本
7 text() 检索该字段中的文本
8 setValidator() 设置验证规则。可用的验证器有: QIntValidator − 限制输入为整数 QDoubleValidator − 数字的小数部分限制为指定的小数位数 QRegexpValidator − 检查输入是否符合正则表达式
9 setInputMask() 应用组合字符的掩码进行输入
10 setFont() 显示内容使用的QFont对象

QLineEdit对象发出以下信号−

以下是信号最常用的方法。

序号 方法与描述
1 cursorPositionChanged() 每当光标移动时
2 editingFinished() 当你按下’Enter’键或者字段失去焦点时
3 returnPressed() 当你按下’Enter’键时
4 selectionChanged() 每当选择的文本发生变化时
5 textChanged() 文本框中的文本通过输入或编程方式发生变化时
6 textEdited() 每当文本被编辑时

示例

此示例中的QLineEdit对象演示了一些这些方法的使用。

第一个字段 e1 使用自定义字体,右对齐并允许输入整数。第二个字段限制输入为小数点后两位的数字。第三个字段应用了用于输入电话号码的输入掩码。字段 e4 上的textChanged()信号连接到textchanged()槽方法。

字段 e5 的内容以密码形式回显,因为其EchoMode属性设置为Password。它的editingfinished()信号连接到presenter()方法。因此,一旦用户按下Enter键,函数将被执行。字段 e6 显示一个默认文本,由于设置为只读,无法编辑。

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   e1 = QLineEdit()
   e1.setValidator(QIntValidator())
   e1.setMaxLength(4)
   e1.setAlignment(Qt.AlignRight)
   e1.setFont(QFont("Arial",20))

   e2 = QLineEdit()
   e2.setValidator(QDoubleValidator(0.99,99.99,2))

   flo = QFormLayout()
   flo.addRow("integer validator", e1)
   flo.addRow("Double validator",e2)

   e3 = QLineEdit()
   e3.setInputMask('+99_9999_999999')
   flo.addRow("Input Mask",e3)

   e4 = QLineEdit()
   e4.textChanged.connect(textchanged)
   flo.addRow("Text changed",e4)

   e5 = QLineEdit()
   e5.setEchoMode(QLineEdit.Password)
   flo.addRow("Password",e5)

   e6 = QLineEdit("Hello Python")
   e6.setReadOnly(True)
   flo.addRow("Read Only",e6)

   e5.editingFinished.connect(enterPress)
   win.setLayout(flo)
   win.setWindowTitle("PyQt")
   win.show()

   sys.exit(app.exec_())

def textchanged(text):
   print "contents of text box: "+text

def enterPress():
   print "edited"

if __name__ == '__main__':
   window()

以上代码输出以下结果−

PyQt QLineEdit小部件

contents of text box: h
contents of text box: he
contents of text box: hel
contents of text box: hell
contents of text box: hello
editing finished

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程