上位机开发PyQt5(二)【单行输入框、多行输入框、按钮的信号和槽】

目录

一、单行输入框QLineEdit

QLineEdit的方法:

 二、多行输入框QTextEdit

QTextEdit的方法

三、按钮QPushButton

四、按钮的信号与槽

信号与槽简介:

信号和槽绑定:

使用PyQt的槽函数


一、单行输入框QLineEdit

QLineEdit控件可以输入单行文本

QLineEdit的方法:

方法

说明

setEchoMode()

QLineEdit.Normal正常显示所输入的字符,默认选项

QLineEdit.NoEcho不显示任何输入的字符,常用于密码类型的输入,且其密码长度需要保密时

QLineEdit.Password显示与平台相关的密码掩码字符,而不是实际输入的字符

QLineEdit.PasswordEchoOnEdit在编辑时显示字符,负责显示密码类型的输入

setPlaceholderText()

设置文本框浮显文字

setText()

设置文本框内容

setMaxLength()

设置文本框所允许输入的最大字符数

示例代码:

import sysfrom PyQt5.QtWidgets import *# 创建QApplication对象
app = QApplication(sys.argv)# 创建QWidget对象  窗口
w = QWidget()# 创建QLineEdit对象
edit = QLineEdit()# 设置默认提示语
edit.setPlaceholderText("请输入你的银行卡账号:")
# 设置内容为"12345"
edit.setText("12345")# 设置最大输入的长度
edit.setMaxLength(16)# 获取文本内容
print(edit.text())# 设置输入框的回显模式,密码模式
edit.setEchoMode(QLineEdit.Password)# 指定父对象
edit.setParent(w)# 设置输入框的# 显示窗口
w.show()# 进入事件循环
sys.exit(app.exec_())

运行结果:

说明:

QLineEdit()

QLineEdit 是一个允许用户输入和编辑纯文本或密码的控件。

setPlaceholderText("xxxx")

设置 QLineEdit 的占位符文本。当 QLineEdit 为空时,这个文本会显示出来,提示用户输入内容。

setText("xxx")

设置 QLineEdit 的初始文本。在这个例子中我设置为“12345”.

setMaxLength(num)

设置 QLineEdit 允许的最大输入字符数为 num,num为数字,根据情况设置。在这个例子中我设置为16.

text()

获取 QLineEdit 的当前文本内容。在这个例子中,它会返回 "12345",因为 setText 方法之前设置了这个值。

setEchoMode(QLineEdit.Password)

设置 QLineEdit 的回显模式为密码模式。这意味着输入的字符会被隐藏(通常显示为星号或点),用于输入密码等敏感信息。

 二、多行输入框QTextEdit

QTextEdit控件用来输入多行文本

QTextEdit的方法

方法

说明

setPlainText()

设置多行文本框的文本内容

toPlainText()

返回多行文本框的文本内容

setHtml()

设置多行文本框的内容为HTML文档

toHtml()

返回多行文本框的HTML文档内容

clear()

清空多行文本框的内容

示例代码:

import sysfrom PyQt5.QtWidgets import *# 创建QApplication对象
app = QApplication(sys.argv)# 创建QWidget对象  窗口
w = QWidget()# 创建QTextEdit对象
txt = QTextEdit()# 设置提示信息
txt.setPlaceholderText("请输入你的履历")# 设置默认内容
txt.setText("Hello World")# 获取内容
print(txt.toPlainText())# 指定父对象
txt.setParent(w)w.show()# 进入事件循环
sys.exit(app.exec_())

运行结果:

说明:

toPlainText()

toPlainText方法的主要作用是将 QTextEdit 中的内容转换为纯文本格式,并返回这个纯文本字符串。

三、按钮QPushButton

常见的按钮实现类包括:QPushButtonQRadioButtonQCheckBox

QPushButton是最普通的按钮控件,可以响应一些用户的事件

示例代码:

import sysfrom PyQt5.QtWidgets import *# 创建QApplication对象
app = QApplication(sys.argv)# 创建QWidget对象  窗口
w = QWidget()# 设置按钮对象
# btn = QPushButton("点击抽奖")
btn = QPushButton()# 设置按钮的文本内容
btn.setText("点击抽奖")# 获取内容
print(btn.text())# 指定父对象
btn.setParent(w)
# 显示窗口
w.show()# 进入事件循环
sys.exit(app.exec_())

运行结果:

说明:

QPushButton()

QPushButton 用于创建一个可以点击的按钮。

setText("xxx")

setText 方法用于设置 QPushButton 控件的文本内容。

text()

text 方法返回 QPushButton 控件的当前文本内容。

四、按钮的信号与槽

信号与槽简介:

信号和槽机制是 QT 的核心机制,应用于对象之间的通信

  • 信号和槽是用来在对象间传递数据的方法
  • 当一个特定事件发生的时候,signal会被emit出来,slot调用是用来响应相应的signal
  • Qt中对象已经包含了许多预定义的 signal(基本组件都有各自特有的预定义的信号)
  • 槽函数绑定了信号,信号一旦发出,就会自动调用绑定的槽函数

信号和槽绑定:

通过调用 QObject 对象的 connect 函数来将对象的信号与另外一个对象的槽函数相关联,当发射者发射信号时,接收者的槽函数将被调用

示例代码:

import sysfrom PyQt5.QtWidgets import *# 创建QApplication对象
app = QApplication(sys.argv)# 创建QWidget对象  窗口
w = QWidget()# 设置按钮对象
# btn = QPushButton("点击抽奖")
btn = QPushButton()# 设置按钮的文本内容
btn.setText("点击抽奖")# 获取内容
print(btn.text())# 指定父对象
btn.setParent(w)# 方式1:自定义槽函数
def func():print("中奖五百万!")# 绑定信号与槽
btn.clicked.connect(func)# 方式2:槽函数为匿名函数
btn.clicked.connect(lambda:print("中奖一千万!"))# 显示窗口
w.show()# 进入事件循环
sys.exit(app.exec_())

运行结果:

说明:

clicked.connect(func)

将 QPushButton 对象的 clicked 信号连接到 func 函数。当按钮被点击时,clicked 信号会被发出,从而触发 func 函数的执行。

clicked.connect(lambda:print("中奖一千万!"))

同样是将 QPushButton 对象的 clicked 信号连接到一个匿名函数。当按钮被点击时,这个匿名函数会被执行,从而打印 "中奖一千万!"。

使用PyQt的槽函数

利用系统自带退出函数QApplication.quit点击按钮,关闭窗口

示例代码:

import sys
from PyQt5.QtWidgets import *# 创建QApplication对象
app = QApplication(sys.argv)# 创建QWidget对象作为窗口
window = QWidget()# 设置窗口标题和大小
window.setWindowTitle('PyQt 退出示例')
window.setGeometry(100, 100, 300, 200)# 创建QPushButton对象
exit_button = QPushButton('退出', window)# 设置按钮的位置和大小
exit_button.setGeometry(100, 70, 100, 30)# 定义槽函数,用于关闭窗口
def close_window():app.quit()# 绑定信号与槽
exit_button.clicked.connect(close_window)# 显示窗口
window.show()# 进入事件循环
sys.exit(app.exec_())

运行结果:

点击退出窗口关闭

说明:

当用户点击“退出”按钮时,QPushButtonclicked信号会被触发,从而调用close_window槽函数,进而调用app.quit()来结束应用程序。这会导致窗口关闭,并且app.exec_()会返回,最终sys.exit()会被调用,确保Python解释器正常退出。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

黑马点评项目个人笔记+项目优化调整

博客须知 本篇博客内容来源与黑马点评项目实战篇-16.用户签到-实现签到功能_哔哩哔哩_bilibili,作者对视频内容进行了整合,由于记笔记时图片使用的是本地路径,所以导致博客的图片无法正常显示,如果有图片需求可以下载上方的pdf须…

程序员老鸟的 Pascal 语言菜鸟教程 -- 快速体验 Pascal

有些程序设计语言和编译器教材会以pascal语言的程序为例,这里写一个快速掌握简单应用的介绍。 1,安装 free pascal 编译器 ubuntu 22.04 直接通过 apt 源安装,此时的版本号为 3.2.2 1.1 安装 sudo apt install fp-compiler 1.2 简单测试 fpc…

【maven】pom文件详解和延伸知识

【maven】pom文件详解 【一】maven项目的pom文件详解【1】maven项目的目录结构【2】根元素和必要配置【3】父项目和parent元素【4】项目构建需要的信息【5】项目依赖相关信息(1)依赖坐标(2)依赖类型(3)依赖…

JavaScript this 上下文深度探索:综合指南涵盖隐式与显式call、apply、bind、箭头函数、构造函数等用法于多样场景

JavaScript中的this关键字代表函数执行的上下文环境,核心在于确定函数内部访问的当前对象。它根据函数调用方式动态变化,对事件处理、对象方法调用等至关重要。通过.call(), .apply(), .bind()或箭头函数控制this,可确保代码逻辑正确绑定对象…

python可视化学习笔记折线图问题-起始点问题

问题描述: 起始点的位置不对 from pyecharts.charts import Line import pyecharts.options as opts # 示例数据 x_data [1,2,3,4,5] y_data [1, 2, 3, 4, 5] # 创建 Line 图表 line Line() line.add_xaxis(x_data) line.add_yaxis("test", y_data) li…

Redis---------缓存更新,缓存穿透\雪崩\击穿

三种更新策略 内存淘汰是Redis内存的自动操作,当内存快满了就会触发内存淘汰。超时剔除则是在存储Redis时加上其有限期(expire),有限期一过就会自动删除掉。而主动更新则是自己编写代码去保持更新,所以接下来研究主动更新策略。 主动更新策略…

PS入门|网络报名证件照上传总提示审核失败是什么原因?

前言 之前小白遇到过有小伙伴报考了某个证书的考试,但在报名的过程出现了问题:证件照都是按照要求制作的,但为啥总是没有审核通过? 这个很简单:分辨率出现了问题。 啥?明明都是按照软件提示的分辨率要求制…

Python中的观察者模式及其应用

观察者模式是设计模式之一,实现一对多依赖,当主题状态变化时通知所有观察者更新。在Python中,通过自定义接口或内置模块实现观察者模式,可提高程序灵活性和扩展性,尤其适用于状态变化时触发操作的场景,如事…

Linux(ubuntu)—— 用户管理user 用户组group

一、用户 1.1、查看所有用户 cat /etc/passwd 1.2、新增用户 useradd 命令,我这里用的是2.4的命令。 然后,需要设置密码 passwd student 只有root用户才能用passwd命令设置其他用户的密码,普通用户只能够设置自己的密码 二、组 2.1查看…

【右一的开发日记】全导航,持续更新...

文章目录 📚前端【跟课笔记】🐇核心技术🐇高级技术 📚捣鼓捣鼓🐇小小案例🐇喵喵大王立大功🐇TED自用学习辅助网站🐇世界top2000计算机科学家可视化大屏🐇基于CBDB的唐代历…

中间件之异步通讯组件RabbitMQ入门

一、概述 微服务一旦拆分,必然涉及到服务之间的相互调用,目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中,调用者发起请求后需要等待服务提供者执行业务返回结果后,才能继续执行后面的业务。也就是说调用者在调用…

HTTP/1.1、HTTP/2、HTTP/3 的演变

HTTP/1.1、HTTP/2、HTTP/3 的演变 HTTP/1.1 相比 HTTP/1.0 提高了什么性能?HTTP/2 做了什么优化?HTTP/3 做了哪些优化? HTTP/1.1 相比 HTTP/1.0 提高了什么性能? HTTP/1.1 相比 HTTP/1.0 性能上的改进: 使用长连接的…

分拣机器人也这么卷了吗?!

导语 大家好,我是智能仓储物流技术研习社的社长,老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 智能制造-话题精读 1、西门子、ABB、汇川:2024中国工业数字化自动化50强 2、完整拆解:智能…

4月20日,杭州Sui Meetup活动回顾

4 月 20 日在风景如画的杭州,「TinTin DESTINATION MOON」成功举办。此次活动深入探讨了 Sui 生态系统的演进及未来机遇,包括 Sui 上的资产管理协议 Mole、全链引擎 Obelisk Engine 以及 Generator 的开发范式等热点话题,行业专家提供了深刻见…

基于Spring Boot的校园闲置物品交易网站设计与实现

基于Spring Boot的校园闲置物品交易网站设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 系统功能界面图,在系统首页可以查看…

修改 Windows 服务器远程端口,以阿里云服务器 ECS 为例

一、WinR - mstsc.exe 登录远程服务器 二、WinR - regedit.exe 打开注册表 三、打开注册表 tcp 路径: 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\Wds\rdpwd\Tds\tcp 双击右侧 PortNumber 子健,勾选十进制&a…

基于SpringBoot的私人健身与教练预约管理系统设计与实现

一、引言 私人健身与教练预约管理系统,可以摆脱传统手写记录的管理模式。利用计算机系统,进行用户信息、管理员信息的管理,其中包含首页,个人中心,用户管理,教练管理,健身项目管理,项…

GitLab服务器的搭建

GitLab服务器的搭建 为公司搭建一台代码托管服务器 服务器规格:2vCPUs4GiB20G 操作系统:RockyLinux8.8 下载软件 gitlab官网:http://about.gitlab.com 在官网下载比较麻烦,推荐从《清华大学开源软件镜像站》下载 清华大学开…

微服务保护和分布式事务(Sentinel、Seata)笔记

一、雪崩问题的解决的服务保护技术了解 二、Sentinel 2.1Sentinel入门 1.Sentinel的安装 (1)下载Sentinel的tar安装包先 (2)将jar包放在任意非中文、不包含特殊字符的目录下,重命名为 sentinel-dashboard.jar &…

File contains parsing errors: file:///etc/yum.repos.d/nginx.repo报错解决,文件配置出现问题

执行yum指令出现以下错误: 解决方案:yum的配置文件出现问题, 先删除yum.repos.d目录下所有文件 rm -f /etc/yum.repos.d/* 然后重新下载阿里的资源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.…