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

目录

一、单行输入框QLineEdit

QLineEdit的方法:

 二、多行输入框QTextEdit

QTextEdit的方法

三、按钮QPushButton

四、按钮的信号与槽

信号与槽简介:

信号和槽绑定:

使用PyQt的槽函数


一、单行输入框QLineEdit

QLineEdit控件可以输入单行文本

QLineEdit的方法:

方法

说明

setEchoMode()

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

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

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

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

setPlaceholderText()

设置文本框浮显文字

setText()

设置文本框内容

setMaxLength()

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

示例代码:

import sys

from 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 sys

from 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 sys

from 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 sys

from 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.mfbz.cn/a/589514.html

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

相关文章

双向链表专题

文章目录 目录1. 双向链表的结构2. 双向链表的实现3. 顺序表和双向链表的优缺点分析 目录 双向链表的结构双向链表的实现顺序表和双向链表的优缺点分析 1. 双向链表的结构 注意: 这⾥的“带头”跟前面我们说的“头节点”是两个概念,带头链表里的头节点…

Redis 实战1

SDS Redis 只会使用 C 字符串作为字面量, 在大多数情况下, Redis 使用 SDS (Simple Dynamic String,简单动态字符串)作为字符串表示。 比起 C 字符串, SDS 具有以下优点: 常数复杂度获取字符串…

JavaEE >> Spring MVC(2)

接上文 本文介绍如何使用 Spring Boot/MVC 项目将程序执行业务逻辑之后的结果返回给用户,以及一些相关内容进行分析解释。 返回静态页面 要返回一个静态页面,首先需要在 resource 中的 static 目录下面创建一个静态页面,下面将创建一个静态…

[嵌入式系统-53]:嵌入式系统集成开发环境大全 ( IAR Embedded Workbench(通用)、MDK(ARM)比较 )

目录 一、嵌入式系统集成开发环境分类 二、由MCU芯片厂家提供的集成开发工具 三、由嵌入式操作提供的集成开发工具 四、由第三方工具厂家提供的集成开发工具 五、开发工具的整合 5.1 Keil MDK for ARM 5.2 IAR Embedded Workbench(通用)、MDK&…

01.本地工作目录、暂存区、本地仓库三者的工作关系

1.持续集成 1.持续集成CI 让产品可以快速迭代,同时还能保持高质量。 简化工作 2.持续交付 交付 3.持续部署 部署 4.持续集成实现的思路 gitjenkins 5.版本控制系统 1.版本控制系统概述2.Git基本概述3.Git基本命令 2.本地工作目录、暂存区、本地仓库三者的工作关系…

抖音评论区精准获客自动化获客释放双手

挺好用的,评论区自动化快速获客,如果手动点引流涨,那就很耗费时间了,不是吗? 网盘自动获取 链接:https://pan.baidu.com/s/1lpzKPim76qettahxvxtjaQ?pwd0b8x 提取码:0b8x

leetcode84柱状图中最大的矩形

题解&#xff1a; - 力扣&#xff08;LeetCode&#xff09; class Solution {public int largestRectangleArea(int[] heights) {Stack<Integer> stack new Stack<>();int maxArea Integer.MIN_VALUE;for(int i 0;i < heights.length;i){int curHeight hei…

YOLOV8添加SKATTENTION

修改ultralytics.nn.modules._init_.py https://zhuanlan.zhihu.com/p/474599120?utm_sourcezhihu&utm id0 https://blog.csdn.net/weixin 42878111/article/details/136060087 https://blog.csdn.net/gg 51511878/aricle/details/138002223 . 最后输出层不一样。

JAVA面试之MQ

如何保证消息的可靠传输&#xff1f;如果消息丢了怎么办 数据的丢失问题&#xff0c;可能出现在生产者、MQ、消费者中。 &#xff08;1&#xff09;生产者发送消息时丢失&#xff1a; ①生产者发送消息时连接MQ失败 ②生产者发送消息到达MQ后未找到Exchange(交换机) ③生产者发…

一对一WebRTC视频通话系列(一)—— 创建页面并显示摄像头画面

本系列博客主要记录WebRtc实现过程中的一些重点&#xff0c;代码全部进行了注释&#xff0c;便于理解WebRTC整体实现。 一、创建html页面 简单添加input、button、video控件的布局。 <html><head><title>WebRTC demo</title></head><h1>…

单片机编程实例400例大全(100-200)

今天继续分享单片机编程实例第100-200例。 今天的实例会比前面100复杂一些&#xff0c;我大概看了下&#xff0c;很多都具备实际产品的参考价值。 今天继续分享单片机编程实例第100-200例。 今天的实例会比前面100复杂一些&#xff0c;我大概看了下&#xff0c;很多都具备实际…

计算机毕业设计hadoop+spark+hive知识图谱音乐推荐系统 音乐数据分析可视化大屏 音乐爬虫 LSTM情感分析 大数据毕设 深度学习 机器学习

黄河科技学院本科毕业设计 任务书 工 学部 大数据与计算机应用 科教中心 计算机科学与技术 专业 2018 级普本1/专升本1班 学号 学生 指导教师 毕业设计题目 基于实时音乐数据挖掘的个性化推荐系统设计与优化 毕业设计工作内容与基本…

频分复用系统设计及其MATLAB实现

引言 随着通信技术的飞速发展&#xff0c;通信系统的容量需求不断增长。频分复用&#xff08;Frequency Division Multiplexing, FDM&#xff09;作为一种重要的多路复用技术&#xff0c;被广泛应用于现代通信系统中。本文将介绍频分复用系统的设计原理&#xff0c;并展示如何…

【Docker学习】docker start深入研究

docker start也是很简单的命令。但因为有了几个选项&#xff0c;又变得复杂&#xff0c;而且... 命令&#xff1a; docker container start 描述&#xff1a; 启动一个或多个已停止的容器。 用法&#xff1a; docker container start [OPTIONS] CONTAINER [CONTAINER...] 别名&…

UE4_Niagara_两个模型之间的粒子幻化

学习笔记&#xff0c;仅供参考&#xff01; 操作步骤&#xff1a; 1、新建niagara system&#xff0c;添加空的发射器&#xff0c;渲染改为网格体渲染器&#xff0c;网格体为1M_Cube. 2、创建粒子材质重载。 3、渲染网格体的材质设置&#xff1a; 4、在发射器属性面板&#x…

数据分析:基于DESeq2的转录组功能富集分析

介绍 DESeq2常用于识别差异基因&#xff0c;它主要使用了标准化因子标准化数据&#xff0c;再根据广义线性模型判别组间差异&#xff08;组间残差是否显著判断&#xff09;。在获取差异基因结果后&#xff0c;我们可以进行下一步的富集分析&#xff0c;常用方法有基于在线网站…

【二等奖水平论文】2024五一数学建模C题22页保奖论文+22页matlab和13页python完整建模代码、可视图表+分解结果等(后续会更新)

一定要点击文末的卡片&#xff0c;那是资料获取的入口&#xff01; 点击链接加入群聊【2024五一数学建模】&#xff1a;http://qm.qq.com/cgi-bin/qm/qr?_wv1027&khoTDlhAS5N_Ffp-vucfG5WjeeJFxsWbz&authKey7oCSHS25VqSLauZ2PpiewRQ9D9PklaCxVS5X6i%2BAkDrey992f0t15…

Spark RDD的分区与依赖关系

Spark RDD的分区与依赖关系 RDD分区 RDD&#xff0c;Resiliennt Distributed Datasets&#xff0c;弹性式分布式数据集&#xff0c;是由若干个分区构成的&#xff0c;那么这每一个分区中的数据又是如何产生的呢&#xff1f;这就是RDD分区策略所要解决的问题&#xff0c;下面我…

音视频开发之旅——实现录音器、音频格式转换器和播放器(PCM文件转换为WAV文件、使用LAME编码MP3文件)(Android)

本文主要讲解的是实现录音器、音频转换器和播放器&#xff0c;在实现过程中需要把PCM文件转换为WAV文件&#xff0c;同时需要使用上一篇文章交叉编译出来的LAME库编码MP3文件。本文基于Android平台&#xff0c;示例代码如下所示&#xff1a; AndroidAudioDemo Android系列&am…

Golang | Leetcode Golang题解之第64题最小路径和

题目&#xff1a; 题解&#xff1a; func minPathSum(grid [][]int) int {if len(grid) 0 || len(grid[0]) 0 {return 0}rows, columns : len(grid), len(grid[0])dp : make([][]int, rows)for i : 0; i < len(dp); i {dp[i] make([]int, columns)}dp[0][0] grid[0][0]…
最新文章