python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例

PyQt5单行文本框控件QLineEdit介绍

QLineEdit类是一个单行文本框控件,可以输入单行字符串。

QLineEdit类中常用的方法如下表

方法 描述
setAlignment() 按固定值方式对齐文本
Qt.AlignLeft:水平方向靠左对齐
Qt.AlignRight:水平方向靠右对齐
Qt.AlignCenter:水平方向居中对齐
Qt.AlignJustify:水平方向调整间距两端对齐
Qt.AlignTop:垂直方向靠上对齐
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 当编辑文本结束时,这个信号就会发射

定义输入掩码的字符

下表列出了输入掩码的占位符和字面字符,并说明其如何控制数据输入

字符 含义
A ASCII字母字符是必须输入的(A-Z,a-z)
a ASCII字母字符是允许输入的,但不是必须输入的
N ASCII字母字符是必须输入的(A-Z,a-z,0-9)
n ASCII字母字符是允许输入的,但不是必须输入的
X 任何字符都是必须输入
x 任何字符都是允许输入的,但不是必须输入的
9 ASCII数字字符是必须输入的(0-9)
0 ASCII数字字符是允许输入的,但不是必须输入的
D ASCII数字字符是必须输入的(1-9)
d ASCII数字字符是允许输入的,但不是必须的(1-9)
# ASCII数字字符与加减字符是允许输入的,但不是必须的
H 十六进制格式字符是必须输入的(A-F,a-f,0-9)
h 十六进制格式字符允许输入,但不是必须的
B 二进制格式字符是必须输入的(0,1)
b 二进制格式字符是允许输入的,但不是必须的
> 所有字母字符都大写
< 所有字母字符都小写
关闭大小写转换
\ 使用‘\'转义上面列出的字符

掩码由掩码字符与分隔符字符串组成,后面可以跟一个分号和空白字符,空白字符在编辑后会从文本删除的

掩码示例如下:

掩码 注意事项
000.000.000.000;_ ip地址,空白字符是‘_'
HH:HH:HH:HH:HH:HH; MAC地址
0000-00-00 日期,空白字符是空格
>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;# 许可证号,空白字符是‘_',所有字母都转换为大写

EchoMode的显示效果

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()

    #创建4个文本输入框
    PNormalLineEdit=QLineEdit()
    pNoEchoLineEdit=QLineEdit()
    pPasswordListEdit=QLineEdit()
    pPasswordEchoOnEditLineEdit=QLineEdit()

    #添加到表单布局中
    #flo.addRow(文本名称(可以自定义),文本框)
    flo.addRow('Normal',PNormalLineEdit)
    flo.addRow('NoEcho', pNoEchoLineEdit)
    flo.addRow('Password', pPasswordListEdit)
    flo.addRow('PasswordEchoOnEdit', pPasswordEchoOnEditLineEdit)

    #设置setPlaceholderText()文本框浮现的文字
    PNormalLineEdit.setPlaceholderText('Normal')
    pNoEchoLineEdit.setPlaceholderText('NoEcho')
    pPasswordListEdit.setPlaceholderText('Password')
    pPasswordEchoOnEditLineEdit.setPlaceholderText('PasswordEchoOnEdit')

    #setEchoMode():设置显示效果

    #QLineEdit.Normal:正常显示所输入的字符,此为默认选项
    PNormalLineEdit.setEchoMode(QLineEdit.Normal)
    #QLineEdit.NoEcho:不显示任何输入的字符,常用于密码类型的输入,且长度保密
    pNoEchoLineEdit.setEchoMode(QLineEdit.NoEcho)
    #QLineEdit.Password:显示与平台相关的密码掩饰字符,而不是实际输入的字符
    pPasswordListEdit.setEchoMode(QLineEdit.Password)
    #QLineEdit.PasswordEchoOnEdit:在编辑时显示字符,负责显示密码类型的输入
    pPasswordEchoOnEditLineEdit.setEchoMode(QLineEdit.PasswordEchoOnEdit)

    #设置窗口的布局
    self.setLayout(flo)

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

效果如下

QLineEdit验证器实例

#导入,Qapplication,单行文本框,窗口,表单布局
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】

    #实例化整型验证器,并设置范围为1-99
    pIntvalidator=QIntValidator(self)
    pIntvalidator.setRange(1,99)

    #浮点型 范围 【-360,360】,精度 小数点后两位

    #实例化浮点验证器,设置范围-360到360
    pDoubleValidator=QDoubleValidator()
    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_())

效果如下

QLineEdit输入掩码实例

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

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

    #实例化表单布局
    flo=QFormLayout()
    #创建4个文本框
    pIPlineEdit=QLineEdit()
    pMAXlineEdit=QLineEdit()
    pDatelineEdit=QLineEdit()
    pLiceseLineEdit=QLineEdit()

    #setInputMask():设置掩码

    #ip地址掩码
    pIPlineEdit.setInputMask('000.000.000.000;_')
    #Mac地址掩码
    pMAXlineEdit.setInputMask('HH:HH:HH:HH:HH:HH;_')
    #日期掩码
    pDatelineEdit.setInputMask('0000-00-00')
    #许可证掩码
    pLiceseLineEdit.setInputMask('>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#')

    #添加名称与控件到表单布局中
    flo.addRow('数字掩码',pIPlineEdit)
    flo.addRow('Mac掩码',pMAXlineEdit)
    flo.addRow('日期掩码',pDatelineEdit)
    flo.addRow('许可证掩码',pLiceseLineEdit)

    #设置窗口的布局
    self.setLayout(flo)
if __name__ == '__main__':
  app=QApplication(sys.argv)
  win=lineEditDemo()
  win.show()
  sys.exit(app.exec_())

效果如下

QLineEdit综合实例

from PyQt5.QtWidgets import QApplication,QLineEdit,QFormLayout,QWidget
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()
    #设置浮点型校验器,有效范围(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)

    e4=QLineEdit()
    #文本修改信号发射与槽函数的绑定
    e4.textChanged.connect(self.textchanged)

    flo.addRow('Text changed',e4)

    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)

    self.setWindowTitle("QLinedit例子")

  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_())

在这个例子中,演示了使用QLineEdit对象的一些方法

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

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

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

第四个文本框e4,需要发射信号textChanged,链接到槽函数textChanged()

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

本文详细讲解了PyQt5中单行文本框控件QLineEdit详细使用方法与实例,更多关于PyQt5中单行文本框控件QLineEdit使用方法与实例请查看下面的相关链接

(0)

相关推荐

  • PyQt5实现QLineEdit添加clicked信号的方法

    大家都知道很多控件是没有clicked信号的,我在网上找了很多终于总结出2个方法来实现类似需求,比如给QLineEdit添加clicked信号,这样的话,当点击输入框时就会发送clicked信号,其它控件也是一样的做法,如下: 方法1:创建一个继承自QLineEdit的类,然后重写mousePressEvent. class MyLineEdit(QLineEdit): clicked = pyqtSignal() def mouseReleaseEvent(self, QMouseEvent)

  • Python GUI库PyQt5图形和特效样式QSS介绍

    QSS介绍前言 QSS即Qt样式表,是用来自定义控件外观的一种机制,QSS大量参考了Css的内容,但QSS的功能要比Css弱得多,体现在选择器少,可以使用的QSS属性也少,而且并不是所有的属性都可以应用在PyQt的控件上,QSS使页面美化跟代码层分开,利于维护 QSS的语法规则 QSS的语法规则几乎与CSS相同,QSS样式由两部分组成,其中一部分是选择器(Selector),指定哪些软件会受到影响,另一部分是声明(Declaration),指定哪些属性应该在控件上进行设置,声明部分是一系列的"属

  • python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法

    PyQt5 Qt Designer (Qt设计师) PyQt5是对Qt所有类进行封装, Qt能开发的东西, PyQt都能开发. Qt是强大的GUI库之一, 用C++开发, 并且跨平台. PyQt双许可证, 要么选择GPL(自由软件协议)将代码开源, 要么选择商业许可交商业许可费. PySide拥有LGPL 2.1授权许可, 可开发 免费开源软件 和 私有商业软件. 把PyQt5代码切换到PySide2代码是相当容易的, 这也是为什么选择学习PyQt5的原因 准备工作 安装PyQt5: pip i

  • python GUI库图形界面开发之PyQt5信号与槽基本操作

    信号与槽基本操作 进入Qt Designer,加入控件,本文以按钮为例. 按F4开始后,选择需要加入信号与槽的按钮,如下图所示该按钮会变红,按住鼠标拉出一条红线,若该按钮需控制旁边的label,则红线连接到label上(图1),若对框体(MainWindow)进行操作,则链接到框体上,会出现一个像物理中"地线"似的符号(图2). 图1 图2 连接后,会弹出如下窗体(图3),左侧界面选择信号,如下图中选择"clicked()"代表点击按钮触发右侧对应槽的操作. 勾选下

  • python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例

    在做界面开发时,无论是移动端的Android,还是我们这里讲的PyQt5,经常会有一个界面开发准则,那就是UI主线程与耗时子线程一定要分开,主线程负责刷新界面,耗时操作,如网络交互.磁盘IO等,都应该放在子线程里执行,它们各司其职,保证系统正常运行,提升整体用户体验. 软硬件环境 windows 10 64bit PyQt5 Anaconda3 with python 3.6.5 实例代码 首先看下工程目录结构 main.py,这是工程入口文件,它负责创建app # -*- coding: ut

  • python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例

    QTimer控件介绍 如果在应用程序中周期性地进行某项操作,比如周期性的检测主机的cpu值,则需要用到QTimer定时器,QTimer类提供了重复和单次的定时器,要使用定时器,需要先创建一个QTimer实例,将其Timeout信号连接到槽函数,并调用start(),然后,定时器,会以恒定的间隔发出timeout信号 当窗口的控件收到Timeout信号后,他就会停止这个定时器,这是在图形用户界面中实现复杂工作的一个典型用法,随着技术的进步,多线程在越来越多的平台上被使用,QTimer对象会被替代掉

  • python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择

    PyQt中MainWindow, QWidget以及Dialog的区别和选择 1. Qt界面分类 在Qt Designer设计界面时,首先需要选择界面模板,主要分为三个类: Main Window Widget Dialog 2. 三种模板的区别(官方文档介绍) MainWindow QMainWindow类提供一个有菜单条.锚接窗口(例如工具条)和一个状态条的主应用程序窗口. 主窗口通常用在提供一个大的中央窗口部件(例如文本编辑或者绘制画布)以及周围菜单.工具条和一个状态条.QMainWind

  • python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法

    PyQt5窗口布局控件QStackedWidget介绍 QTackedWidget是一个堆栈窗口控件,可以填充一些小控件,但是同一时间只有一个小控件可以显示,QStackedWidget使用QStackedLayout布局.QSTackedWidget控件与QTabWidget类似,可以有效的显示窗口的控件 QStackedWidget的使用实例 import sys from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.

  • python GUI库图形界面开发之PyQt5动态加载QSS样式文件

    在Qt中经常需要使用样式,为了降低耦合性(与逻辑代码分离),我们通常会定义一个QSS文件,然后编写各种控件(QLabel,QLIneEdit,QPushButton等)的样式,最后使用QApplication或QMainWindow来加载样式,这样就可以让整个应用程序共享一种样式了 编写QSS 首先新建一个扩展名为.qss的文件,如style.qss,然后将其加入资源文件(.qrc)中,在style.qss文件中编写样式代码,例如 QMainWindow{ border-image:url(./

  • python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍

    信号和槽机制是 QT 的核心机制,要精通 QT 编程就必须对信号和槽有所了解.信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方. 在linux.windows等 GUI 工具包中,GUI组件都会注册回调函数用于处理组件所触发的动作,通常是注册对应的函数的函数指针.在之前关于Button的文章中提到了信号与槽的机制的使用,通过该机制可以很好的将组件的信号(如button的clocked.toggled.pressed等)和处理该信号的槽关

  • Python GUI库PyQt5样式QSS子控件介绍

    QSS子控件 QSS子控件实际上也是一种选择器,其应用在一些复合控件上,典型的如QComboBox,该控件的外观是,有一个矩形的外边框,右边有一个下拉箭头,点击之后会弹出下拉列表,例如: QComboBox:drop-down {image:url(dropdown.png)} 上面的样式指定所有的QComboBox下拉箭头的图片是自定义的,图片文件为dropdown.png ::drop-down子控件选择器可以与上面提到到的选择器一起联合使用,例如 QComboBox#myQComboBox

  • python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法

    QMainWindow QMainWindow类中比较重要的方法 方法 描述 addToolBar() 添加工具栏 centralWidge() 返回窗口中心的一个控件,未设置时返回NULL menuBar() 返回主窗口的菜单栏 setCentralWidget() 设置窗口中心的控件 setStatusBar() 设置状态栏 statusBar() 获得状态栏对象后,调用状态栏对象的showMessage(message,int timeout=0)方法 显示状态栏信息,其中第一个参数是要显

  • python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法

    PyQt5浏览器控件QWebEngineView PyQt5使用QWebEngineView控件来展示HTML页面,对老版本的QWebView类不在进行维护,因为QWebEngineView使用CHromium内核可以给用户带来更好的体验 QWebEngineView类中常用方法 方法 描述 load(QUrl url) 加载指定的URL并显示 setHtml(QString&html) 将网页视图的内容设置为指定的HTML内容 QWebEngineView控件使用load()函数加载一个Web

  • 在pyqt5中QLineEdit里面的内容回车发送的实例

    在PyQt5中QLineEdit里面的内容回车发送的方法是和PyQt4中不同的,主要是信号槽的写法的改变导致的. 具体不同如下: 在PyQt4中,我们要进行回车发送的时候,一般这么写: self.connect(self.lineEdit, SIGNAL("returnPressed()"), self.lineEdit_function) 但是在PyQt5中,写法有所改变,一般这么写: self.lineEdit.returnPressed.connect(self.lineEdit

  • python GUI库图形界面开发之PyQt5开发环境配置与基础使用

    PyQt5安装 在cmd下输入 pip install PyQt5 完成PyQt5安装,再安装qt designer,可以使用pip安装 pip install PyQt5-tools 安装完成后,在python安装目录下可以看到 配置PyCharm 配置PyCharm是为了在Pycharm里面实现打开qt designer,然后生成qt文件,然后将qt文件转换成python语言的软件文件. 打开Pycharm,按下图操作 打开Extrernal Tools之后,点击上如绿色的+,添加Tools

  • python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法

    QWidget基本介绍 基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类. 窗口坐标系统 PyQt使用统一的坐标系统来定位窗口控件的位置和大小,具体如下 以屏幕左上角为原点,也就是(0, 0)点,从左向右为x轴正方向,从上向下为y轴正方向,整个屏幕的坐标系统用来定位顶层窗口. 在窗口内部也有自己的坐标系统,该坐标系统以客户区的左上角为原点,从左向右为x轴正方向,从上到下为y轴正方向,在客户区周围有标题栏和边框. 从上图中,可以将这些成

  • python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例

    窗口背景主要包括,背景色与背景图片,设置窗口背景有三种方法 使用QSS设置窗口背景 使用QPalette设置窗口背景 实现PainEvent,使用QPainter绘制背景 QSS设置窗口背景 在QSS中,我们可以使用Background或者background-color的方式来设置背景色,设置窗口背景色之后,子控件默认会继承父窗口的背景色,如果想要为控件设置背景图片或图标,则可以使用setPixmap或则setIcon来完成.关于这两个函数的用法,可以参考本博客下的PyQt5的基础控件分栏 实

  • python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例

    这几天研究了下PyQt5中QWebEngineView内嵌网页与Python的数据交互,今天把实例方法与代码发布出来供大家参数 数据交互需要load进一个网页,这里我选择load进一个本地html网页:JSTest.html. 同时,QWebEngineView与外面的交互还需要Qt官方提供的一个js文件:qwebchannel.js,这个文件可以在网上下载. JSTest.html和qwebchannel.js两个文件放在同一个目录下,我这边都是放在Python工程目录下. qwebchann

  • python GUI库图形界面开发之PyQt5线程类QThread详细使用方法

    QThread是Qt的线程类中最核心的底层类.由于PyQt的的跨平台特性,QThread要隐藏所有与平台相关的代码 要使用的QThread开始一个线程,可以创建它的一个子类,然后覆盖其它QThread.run()函数 class Thread(QThread): def __init __(self): super(Thread,self).__ init __() def run(self): #线程相关的代码 pass 接下来创建一个新的线程 thread = Thread() thread

  • python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性

    QTableWidget介绍 QTableWidget是Qt程序中常用的显示数据表格的控件,类似于c#中的DataGrid.QTableWidget是QTableView的子类,它使用标准的数据模型,并且其单元数据是通过QTableWidgetItem对象来实现的,使用QTableWidget时就需要QTableWidgetItem.用来表示表格中的一个单元格,整个表格就是用各个单元格构建起来的 QTableWidget类中的常用方法 方法 描述 setROwCount(int row) 设置Q

随机推荐