PYQT5(06)-基本窗口控件-文本框类控件

QLineEdit

单行文本框控件

setAlignment()

按固定值方式对齐文本:

QtAlignLeft,水平方向靠左对齐
Qt.AlignRight,水平方向靠右对齐
Qt.AlignCenter,水平方向居中对齐
QL.AlignJustify,水平方向调整间距两端对齐
Qt.AlignTop,垂直方向靠上对齐
Qt.AlignBottom,乘直方向靠下对齐
QtAlignVCenter,垂直方向居中对齐

clear()清除文本框内容
setEchoMode()

设置文本框显示格式:

QLineEditNoral,正常显示所输入的字符,此为默认选项
QLineEditNoEcho,不显示任何输入的字符,常用于密码类型的输入,且其密码长度需要保密时
QLineEditPassword,显示与平台相关的密码掩码字符,而不是实际输入的字符
QLineEdit.PasswordEchoOnEdit,在编辑时显示字符,负责显示密码类型的输入

setPlaceholderText()设置文本框浮显文字
setMaxLength()设置文本框所允许输入的最大字符数
setReadOnly()设置文本框为只读的
setText()设置文本框内容
Text()返回文本框内容
setDragEnabled()设置文本框是否接受拖动
selectAll()全选
setFocus()得到焦点
setlnputMask()设置掩码
setValidator()设置文本框的验证器(验证规则),将限制任意可能输入的文本。可用的校验器为:
QIntValidator,限制输入整数
QDoubleValidator,限制输入浮点数
QRegexpValidator,检查输入是否符合正则表达式

掩码设置

000.000.000.000;_IP地址,空白字符是“_”
HH:HH:HH:HH:HH:HH;MAC地址
0000-00-00日期,空白字符是空格
>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;# 许可证号,空白字符是“_”,所有字母字符转换为大写

常用信号

selectionChanged只要选择改变了,这个信号就会被发射
textChanged当修改文本内容时,这个信号会被发射
editingFinished当编辑文本结束时,这个信号会被发射

setEchoMode的使用效果

代码示例

from PyQt5.QtWidgets import QApplication,  QLineEdit , QWidget ,  QFormLayout
import sys  

class lineEditDemo(QWidget):
	def __init__(self, parent=None):
		super(lineEditDemo, self).__init__(parent)
		self.setWindowTitle("QLineEdit例子")

		flo = QFormLayout()
		pNormalLineEdit = QLineEdit()
		pNoEchoLineEdit = QLineEdit()
		pPasswordLineEdit = QLineEdit()
		pPasswordEchoOnEditLineEdit = QLineEdit()

		flo.addRow("Normal", pNormalLineEdit)
		flo.addRow("NoEcho", pNoEchoLineEdit)
		flo.addRow("Password", pPasswordLineEdit)
		flo.addRow("PasswordEchoOnEdit", pPasswordEchoOnEditLineEdit)
        
		pNormalLineEdit.setPlaceholderText("Normal")
		pNoEchoLineEdit.setPlaceholderText("NoEcho")
		pPasswordLineEdit.setPlaceholderText("Password")
		pPasswordEchoOnEditLineEdit.setPlaceholderText("PasswordEchoOnEdit")

		# 设置显示效果
		pNormalLineEdit.setEchoMode(QLineEdit.Normal)
		pNoEchoLineEdit.setEchoMode(QLineEdit.NoEcho)
		pPasswordLineEdit.setEchoMode(QLineEdit.Password)
		pPasswordEchoOnEditLineEdit.setEchoMode(QLineEdit.PasswordEchoOnEdit)
		                    
		self.setLayout(flo)
                    
   
if __name__ == "__main__":       
	app = QApplication(sys.argv)
	win = lineEditDemo()	
	win.show()	
	sys.exit(app.exec_())

 验证器

代码示例

from PyQt5.QtWidgets import QApplication,  QLineEdit , QWidget ,  QFormLayout
from PyQt5.QtGui import QIntValidator ,QDoubleValidator  , QRegExpValidator
from PyQt5.QtCore import QRegExp
import sys  

class lineEditDemo(QWidget):
	def __init__(self, parent=None):
		super(lineEditDemo, self).__init__(parent)
		self.setWindowTitle("QLineEdit例子")

		flo = QFormLayout()
		pIntLineEdit  = QLineEdit()
		pDoubleLineEdit  = QLineEdit()
		pValidatorLineEdit  = QLineEdit()

		flo.addRow("整形", pIntLineEdit)
		flo.addRow("浮点型", pDoubleLineEdit)
		flo.addRow("字母和数字", pValidatorLineEdit)
        
		pIntLineEdit.setPlaceholderText("整形");
		pDoubleLineEdit.setPlaceholderText("浮点型");
		pValidatorLineEdit.setPlaceholderText("字母和数字");

		# 整形 范围:[1, 99]
		pIntValidator = QIntValidator(self)
		pIntValidator.setRange(1, 99)

		# 浮点型 范围:[-360, 360] 精度:小数点后2位
		pDoubleValidator = QDoubleValidator(self)
		pDoubleValidator.setRange(-360, 360)
		pDoubleValidator.setNotation(QDoubleValidator.StandardNotation) # 正常显示浮点数
		pDoubleValidator.setDecimals(2)
		
		# 字符和数字
		reg = QRegExp("[a-zA-Z0-9]+$")
		pValidator = QRegExpValidator(self) # 根据正则表达式检查字符串
		pValidator.setRegExp(reg)	

        # 设置验证器
		pIntLineEdit.setValidator(pIntValidator)
		pDoubleLineEdit.setValidator(pDoubleValidator)
		pValidatorLineEdit.setValidator(pValidator)
		                    
		self.setLayout(flo)                        
   
if __name__ == "__main__":       
	app = QApplication(sys.argv)
	win = lineEditDemo()	
	win.show()	
	sys.exit(app.exec_())

 

 输入掩码

代码示例

from PyQt5.QtWidgets import QApplication,  QLineEdit , QWidget ,  QFormLayout
import sys  

class lineEditDemo(QWidget):
	def __init__(self, parent=None):
		super(lineEditDemo, self).__init__(parent)
		self.setWindowTitle("QLineEdit的输入掩码例子")

		flo = QFormLayout()          		
		pIPLineEdit = QLineEdit()
		pMACLineEdit = QLineEdit()
		pDateLineEdit = QLineEdit()
		pLicenseLineEdit = QLineEdit()		

		pIPLineEdit.setInputMask("000.000.000.000;_")
		pMACLineEdit.setInputMask("HH:HH:HH:HH:HH:HH;_")
		pDateLineEdit.setInputMask("0000-00-00")
		pLicenseLineEdit.setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#")

		flo.addRow("数字掩码", pIPLineEdit)
		flo.addRow("Mac掩码", pMACLineEdit)
		flo.addRow("日期掩码", pDateLineEdit)
		flo.addRow("许可证掩码", pLicenseLineEdit)
              		                    
		self.setLayout(flo)                        
   
if __name__ == "__main__":       
	app = QApplication(sys.argv)
	win = lineEditDemo()	
	win.show()	
	sys.exit(app.exec_())

 

 综合代码例子

from PyQt5.QtWidgets import QApplication,  QLineEdit , QWidget ,  QFormLayout
from PyQt5.QtGui import QIntValidator , QDoubleValidator , QFont
from PyQt5.QtCore import Qt
import sys  

class lineEditDemo(QWidget):
	def __init__(self, parent=None):
		super(lineEditDemo, self).__init__(parent)
		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( self.textchanged)
		flo.addRow("Text changed", e4)
		e5 = QLineEdit()
		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)
		self.setWindowTitle("QLineEdit例子")
	
	def textchanged(self, text):
		print("输入的内容为: "+text)

	def enterPress(self):
		print("已输入值")

   
if __name__ == "__main__":       
	app = QApplication(sys.argv)
	win = lineEditDemo()	
	win.show()	
	sys.exit(app.exec_())

第1个文本框e1,显示文本使用自定义字体、右对齐、允许输入整数。

第2个文本框e2,限制输入小数点后两位。

第3个文本框e3,需要一个输入掩码应用于电话号码。

第4个文本框e4,需要发射信号textChanged,连接到槽函数textchanged()。

第5个文本框e6,设置显示模式EchoMode为Password,需要发射editingfinished信号连接到槽函数enterPress(),一旦用户按下了回车键,该函数就会被执行。

 第6个文本框e6,显示一个默认的文本,不能编辑,设置为只读的。

 QTextEdit

多行文本框控件(文本/HTML文档)

setPlainText()设置多行文本框的文本内容。
toPlainText()返回多行文本框的文本内容。
setHtml()设置多行文本框的内容为HTML文档,HTML文档是描述网页的。
totHtml()返回多行文本框的HTML文档内容。
clear()清除多行文本框的内容

代码示例

from PyQt5.QtWidgets import QApplication,  QWidget ,  QTextEdit, QVBoxLayout , QPushButton
import sys  

class TextEditDemo(QWidget):
	def __init__(self, parent=None):
		super(TextEditDemo, self).__init__(parent)
		self.setWindowTitle("QTextEdit 例子")
		self.resize(300, 270)    
		self.textEdit = QTextEdit()      
		self.btnPress1 = QPushButton("显示文本")
		self.btnPress2 = QPushButton("显示HTML")        
		layout = QVBoxLayout()
		layout.addWidget(self.textEdit)
		layout.addWidget(self.btnPress1)   
		layout.addWidget(self.btnPress2)   		
		self.setLayout(layout)
		self.btnPress1.clicked.connect(self.btnPress1_Clicked)
		self.btnPress2.clicked.connect(self.btnPress2_Clicked)
		
	def btnPress1_Clicked(self):
		self.textEdit.setPlainText("Hello PyQt5!\n点击按钮")

	def btnPress2_Clicked(self):
		self.textEdit.setHtml("<font color='red' size='6'><red>Hello PyQt5!\n点击按钮。</font>")
		
if __name__ == "__main__":       
	app = QApplication(sys.argv)
	win = TextEditDemo()	
	win.show()	
	sys.exit(app.exec_())

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AdolphW

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值