PyQt5中的LineEdit单行文本框

文章目录

    • 1. 简介
      • 1.1 常用方法:
      • 1.2 常用信号:
    • 2. LineEdit常用方法使用案例
    • 3. LineEdit常用信号使用案例

1. 简介

在PyQt5中,LineEdit(单行文本框)是一个常用的组件,它允许用户输入文本。以下是一些LineEdit常用的方法和信号:

1.1 常用方法:

  • setText(text): 设置LineEdit中的文本。
line_edit.setText("Hello, PyQt5!")
  • text(): 获取LineEdit中的文本。
current_text = line_edit.text()
  • clear(): 清除LineEdit中的文本。
line_edit.clear()
  • setPlaceholderText(text): 设置LineEdit的占位文本。
line_edit.setPlaceholderText("Enter your text here")
  • selectAll(): 选中LineEdit中的所有文本。
line_edit.selectAll()

1.2 常用信号:

  • textChanged: 当LineEdit的文本发生变化时发出信号。
line_edit.textChanged.connect(your_slot_function)
  • returnPressed: 当用户在LineEdit中按下回车键时发出信号。
line_edit.returnPressed.connect(your_slot_function)
  • editingFinished: 当LineEdit完成编辑(失去焦点)时发出信号。
line_edit.editingFinished.connect(your_slot_function)

2. LineEdit常用方法使用案例

我们用下面的一个示例演示如何使用QLabel和QTextEdit在窗口中输出信息

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

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 初始化界面
        self.setWindowTitle("Line Edit Example")  # 设置窗口标题
        self.resize(500, 300)  # 设置窗口大小

        # 创建垂直布局
        layout = QVBoxLayout()

        # 创建单行文本框
        self.line_edit = QLineEdit(self)
        # 设置占位文本
        self.line_edit.setPlaceholderText("Enter your name here")
        layout.addWidget(self.line_edit)

        # 创建按钮
        self.button = QPushButton("Perform Actions", self)
        layout.addWidget(self.button)

        # 创建用于显示文本的标签
        self.label = QLabel(self)
        self.label.setText("Here to record text in line edit!")  # 设置标签初始文本
        layout.addWidget(self.label)

        # 创建用于输出多行文本的文本框
        self.text_edit = QTextEdit(self)
        layout.addWidget(self.text_edit)

        # 将布局设置为窗口的主布局
        self.setLayout(layout)

        # 连接按钮点击事件到槽函数
        self.button.clicked.connect(self.perform_actions)

    def perform_actions(self):
        # 获取LineEdit中的文本
        text = self.line_edit.text()
        # 在标签中记录文本
        self.label.setText("Record text in LineEdit: " + text)
        # 清除LineEdit中的文本
        self.line_edit.clear()
        # 在文本框中追加消息
        self.text_edit.append(f"Action performed: Remove '{text}' from line edit")

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

这个程序创建了一个带有单行文本框、按钮、标签和多行文本框的GUI。用户在单行文本框中输入文本,点击按钮后,程序会在标签中记录文本,并在多行文本框中输出一条消息。

运行结果如下

在这里插入图片描述

3. LineEdit常用信号使用案例

我们用下面一个示例程序,演示LineEdit常用的信号的使用

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLineEdit, QLabel

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 初始化窗口标题和大小
        self.setWindowTitle("LineEdit Signals Example")
        self.resize(500, 300)

        # 创建垂直布局
        layout = QVBoxLayout()

        # 创建一个单行文本框和两个标签用于显示信号触发情况
        self.line_edit = QLineEdit(self)
        layout.addWidget(self.line_edit)

        self.label1 = QLabel(self)
        layout.addWidget(self.label1)

        self.label2 = QLabel(self)
        layout.addWidget(self.label2)

        # 将布局设置为窗口的主布局
        self.setLayout(layout)

        # 连接LineEdit的信号
        self.line_edit.textChanged.connect(self.onTextChanged)
        self.line_edit.returnPressed.connect(self.onReturnPressed)
        self.line_edit.editingFinished.connect(self.onEditingFinished)

    def onTextChanged(self, text):
        # 当文本发生变化时,更新标签1显示
        self.label1.setText(f"Text Changed: {text}")

    def onReturnPressed(self):
        # 当用户按下回车键时,更新标签1显示
        self.label1.setText("Return Pressed")

    def onEditingFinished(self):
        # 当编辑完成时(失去焦点)更新标签2显示
        self.label2.setText("Editing Finished")

if __name__ == '__main__':
    # 创建应用程序对象并运行
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

这个程序创建了一个带有单行文本框和两个标签的窗口。当用户在文本框中输入文本时,会触发textChanged信号,导致onTextChanged方法被调用,更新标签1的显示内容。当用户按下回车键时,会触发returnPressed信号,导致onReturnPressed方法被调用,同样更新标签1的显示内容。当用户编辑完成并且焦点离开文本框时,会触发editingFinished信号,导致onEditingFinished方法被调用,更新标签2的显示内容。

运行结果如下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/619569.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【游戏引擎】unity

目录 Unity入门教程:从零到英雄的旅程前言第一步:下载和安装Unity第二步:创建你的第一个Unity项目第三步:熟悉Unity界面第四步:创建一个简单的游戏对象第五步:编写脚本赋予游戏对象生命第六步:运…

华为OD机试【统一限载货物数最小值】(java)(200分)

1、题目描述 火车站附近的货物中转站负责将到站货物运往仓库,小明在中转站负责调度 2K 辆中转车(K辆干货中转车,K 辆湿货中转车)货物由不同供货商从各地发来,各地的货物是依次进站,然后小明按照卸货顺序依次装货到中转车&#xf…

如何解决pycharm在HTML文件中注释快捷键出错的问题(HTML注释规则出错)

文章目录 💢 问题 💢🏡 演示环境 🏡💯 解决方案 💯⚓️ 相关链接 ⚓️💢 问题 💢 你是否在编程时遇到过这样的烦恼?当你正专注地编写HTML代码,想要快速注释掉某部分内容时,却发现PyCharm的注释快捷键失灵了(没有使用正确的注释格式)。这不仅打断了你的工作…

【论文笔记】利用扩散模型DDPM做变化检测change detection

去噪扩散模型DDPM去年开始在各种视觉任务取得惊人的效果,变化检测领域也不例外,本文介绍两篇关于如何使用扩散模型实现变化检测的论文。第一篇做法较为自然,先利用遥感数据预训练DDPM,然后将预训练好的网络当作变化检测任务的特征…

设计模式-结构型-适配器模式-Adapter

地址类 public class Address {public void street() {System.out.println("普通的街道");}public void zip() {System.out.println("普通的邮政编码");}public void city() {System.out.println("普通的城市");} } 荷兰地址类 public class …

用lobehub打造一个永久免费的AI个人助理

Lobe Chat是一个开源的高性能聊天机器人框架,它被设计来帮助用户轻松创建和部署自己的聊天机器人。这个框架支持多种智能功能,比如语音合成(就是让机器人能说话),还能理解和处理多种类型的信息,不仅限于文字…

关于USB 3.1电气参数的探讨

目录 0 引言 1 抖动预算 2 时钟恢复-CDR 3 测试码型-PRBS16 4 传输码型-128b/132b 5 眼图模板-Eye Mask 6 发射均衡 7 接收均衡 7.1 CTLE均衡 7.2 DFE均衡

Postman历史版本安装与runner测试

前言 实际上就是笔者本地做demo,postman使用了最新版本,本身也没问题,不过postman不支持不登录做runner测试了,很多功能必须登录账号才能使用,否则只能使用http工具发送的能力,而postman本身就是一个简单工…

栈和队列经典练习题

目录 前言: 一、括号匹配问题 1.题目描述 2.解题思路 3.题目链接 二、用队列实现栈 1.题目描述 2.解题思路 3.题目链接 三、用栈实现队列 1.题目描述 2.题目分析 3.题目链接 四、设计循环队列 1.题目描述 2. 题目分析 3.题目链接 最后 前言: 前…

JCR一区 | Matlab实现1D-2D-GASF-CNN-BiLSTM-MATT的多通道输入数据分类预测

JCR一区 | Matlab实现1D-2D-GASF-CNN-BiLSTM-MATT的多通道输入数据分类预测 目录 JCR一区 | Matlab实现1D-2D-GASF-CNN-BiLSTM-MATT的多通道输入数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 Matlab实现1D-2D-GASF-CNN-BiLSTM-MATT的多通道输入数据分类预…

未授权访问:VNC未授权访问

目录 1、漏洞原理 2、环境搭建 3、未授权访问 防御手段 今天继续学习各种未授权访问的知识和相关的实操实验,一共有好多篇,内容主要是参考先知社区的一位大佬的关于未授权访问的好文章,还有其他大佬总结好的文章: 这里附上大…

修改MTU值解决Linux下运行top命令卡死问题

上周明月的Linux服务器上运行top命令总是莫名的出现卡死现象,甚至是CtrlC都无法终止进程,今天终于抽空找到了解决办法,原来是需要修改Linux的MTU值,将服务器操作系统数据包调小,加上VxLAN数据包小于1500即可。 top命令…

Python-VBA函数之旅-sum函数

目录 一、sum函数的常见应用场景 二、sum函数使用注意事项 三、如何用好sum函数? 1、sum函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页: https://myelsa1024.blog.csdn.net/ 一、sum函数的常…

摩苏尔大坝形变监测

摩苏尔大坝,是伊拉克最大的大坝。它位于底格里斯河35公里,北距摩苏尔市,这是一座粘土质地的水坝,高113米,长3.2公里,于1986落成。 大坝建成后不久,大坝就遇到了由软石膏地基造成的一些结构性问题…

jenkins连接ubuntu普通用户节点

1.创建credentials 2.创建node 3.在jenkins服务器还需要进行的操作(jenkins服务器中) mkdir /var/lib/jenkins/.ssh ssh-keyscan -H 192.168.110.204 >> /var/lib/jenkins/.ssh/known_hosts chown -R jenkins:jenkins /var/lib/jenkins/.ssh/ 4.…

试衣不再有界:Tunnel Try-on开启视频试衣应用新纪元

论文:https://arxiv.org/pdf/2404.17571 主页:https://mengtingchen.github.io/tunnel-try-on-page/ 一、摘要总结 随着虚拟试衣技术的发展,消费者和时尚行业对于能够在视频中实现高质量虚拟试衣的需求日益增长。这项技术允许用户在不实际穿…

【实战】算法思路总结

面试过程中,总是被拷打,信心都要没了。但是也慢慢摸索出一些思路,希望对大家有帮助。 (需要多用一下ACM模式,力扣模式提供好了模板,自己在IDEA里面写的话,还是会有些陌生) 0、基本…

MFC重要的初始化函数InitInstance

MFC应用程序最早处理的类的初始化函数通常是CWinApp类的构造函数。CWinApp类是MFC应用程序的主类,负责整个应用程序的初始化和管理。 在MFC应用程序中,通常会创建一个派生自CWinApp类的应用程序类,例如CMyApp。在应用程序启动时,…

【Oracle篇】rman物理备份工具的基础理论概述(第一篇,总共八篇)

☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&am…

Mujoco仿真【将urdf文件转化为xml文件】

最近开始学习mujoco仿真方面的内容 先前写过一篇博客:强化学习:MuJoCo机器人强化学习仿真入门(1)_mujoco仿真-CSDN博客 简单介绍了mujoco仿真的一些内容,下面想在Mujoco中将urdf转为xml文件,了解到mujoco是…