上位机开发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.rhkb.cn/news/318043.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dynamic-Programming

目录 前言 引入 1) Fibonacci 2) 最短路径 - Bellman-Ford 3) 不同路径-Leetcode 62 4) 0-1 背包问题 降维 5) 完全背包问题 降维 6) 零钱兑换问题-Leetcode322 降维 零钱兑换 II-Leetcode 518 7) 钢条切割问题 降维 类似题目 Leetcode-343 整数拆分 8) 最长…

Flutter笔记:Widgets Easier组件库(8)使用图片

Flutter笔记 Widgets Easier组件库(8):使用图片 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress o…

硬件21、接线端子XH2.54、2.54排针排母、2510接插件、PH2.0、町洋接线端子5.08、ISP接口JTAG插座

XH2.54端子的间距为2.54毫米,2.54排针排母的间距也是2.54mm,2510接插件也是2.54、而PH2.0端子的间距为2.0毫米,町洋接线端子插针间的距离是5.08mm,ISP接口JTAG插座针脚的间距一般也是2.54mm XH2.54 针脚间距为2.54mm 插头 接线…

shell脚本-监控系统内存和磁盘容量

监控内存和磁盘容量除了可以使用zabbix监控工具来监控,还可以通过编写Shell脚本来监控。 #! /bin/bash #此脚本用于监控内存和磁盘容量,内存小于500MB且磁盘容量小于1000MB时报警#提取根分区剩余空间 disk_size$(df / | awk /\//{print $4})#提取内存剩…

CSS-IN-JS Emotion

为什么会有css-in-js 优点 缺点 使用emotion插件库 npm i emotion/core emotion/styled使用时需要解析css属性 使用方式一: 通过注释告诉babel不讲jsx转化为react.create Element的调用,而是转化为jsx语法。会导致一个警告react未使用。 使用方式二&am…

react核心知识

1. 对 React 的理解、特性 React 是靠数据驱动视图改变的一种框架,它的核心驱动方法就是用其提供的 setState 方法设置 state 中的数据从而驱动存放在内存中的虚拟 DOM 树的更新 更新方法就是通过 React 的 Diff 算法比较旧虚拟 DOM 树和新虚拟 DOM 树之间的 Chan…

GPT3 终极指南(二)

原文:zh.annas-archive.org/md5/6de8906c86a2711a5a84c839bec7e073 译者:飞龙 协议:CC BY-NC-SA 4.0 第五章:GPT-3 作为企业创新的下一步 当一个新的创新或技术转变发生时,大公司通常是最后一个采纳的。它们的等级结构…

LeetCode 213 —— 打家劫舍 II

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 此题是 LeetCode 198—— 打家劫舍 的升级版,多了一个首尾相连的设定。 因为首尾相连,所以第一个房屋和最后一个房屋只能偷窃其中一个。 所以,第一种方案就是不偷窃最后一个房…

数据结构六:线性表之顺序栈的设计

目录 一、栈的应用场景 二、栈的基本概念和结构 2.1 栈的基本概念 2.2 栈的结构 2.3 栈的实现方式 三、顺序栈的接口函数实现 3.0 顺序栈的概念和结构 3.1 顺序栈的接口函数 3.2 顺序栈的设计(结构体) 3.3 顺序栈的初始化 3.4 入栈&#x…

Python绘制的好看统计图

代码 sx [Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu, GnBu_r, Greens, Greens_r, Greys, Greys_r, OrRd, OrRd_r, Oranges, Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r, P…

phpstudy 搭建 upload-labs 文件上传靶场

phpstudy 搭建靶场:下载安装好phpstudy后,下载靶场源码: upload-labs下载地址: https://github.com/c0ny1/upload-labs 下载完压缩文件,解压文件,解压后的文件夹命名为upload--labs 将解压后到文件夹放…

Hive 表定义主键约束

文章目录 1.建表语句2.主键约束3.主键约束的意义参考文献 1.建表语句 先看一下官方给的完整的见表语句: CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later)[(col_name data…

Sortable 拖拽行实现el-table表格顺序号完整例子,vue 实现表格拖拽行顺序号完整例子

npm install sortable<template><vxe-modalref"modalRef"v-model"showModal"title"详情"width"70vw"height"60vh"class"his"transfer><el-table ref"tableRef" :data"tableData&q…

Swift - 可选项(Optional)

文章目录 Swift - 可选项&#xff08;Optional&#xff09;1. 可选项&#xff08;Optional&#xff09;2. 强制解包&#xff08;Forced Unwrapping&#xff09;3. 判断可选项是否包含值4. 可选项绑定&#xff08;Optional Binding&#xff09;5. 等价写法6. while循环中使用可选…

CogAgent:开创性的VLM在GUI理解和自动化任务中的突破

尽管LLMs如ChatGPT在撰写电子邮件等任务上能够提供帮助&#xff0c;它们在理解和与GUIs交互方面存在挑战&#xff0c;这限制了它们在提高自动化水平方面的潜力。数字世界中的自主代理是许多现代人梦寐以求的理想助手。这些代理能够根据用户输入的任务描述自动完成如在线预订票务…

GraspNet-1Billion 论文阅读

文章目录 GraspNet-1Billion总体数据集评价指标网络pointnet&#xff1a;Approach Network:Operation Network&#xff1a;Tolerance Network 摘要相关工作基于深度学习的抓取预测算法抓取数据集点云深度学习 GraspNet-1Billion CVPR2020 上海交大 论文和数据集地址&#xff1…

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习五

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深…

Linux下启动jenkins报错问题解决

jenkins端口报错 java.io.IOException: Failed to start Jettyat winstone.Launcher.<init>(Launcher.java:209)at winstone.Launcher.main(Launcher.java:496)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.int…

《QT实用小工具·四十八》趣味开关

1、概述 源码放在文章末尾 该项目实现了各种样式的趣味开关&#xff1a; 1、爱心形状的switch开关&#xff0c;支持手势拖动、按压效果 2、线条样式的3种开关 项目demo演示如下所示&#xff1a; 使用方式&#xff1a; 1、sapid_switch文件夹加入工程&#xff0c;.pro文件中…

Go 语言(三)【面向对象编程】

1、OOP 首先&#xff0c;Go 语言并不是面向对象的语言&#xff0c;只是可以通过一些方法来模拟面向对象。 1.1、封装 Go 语言是通过结构体&#xff08;struct&#xff09;来实现封装的。 1.2、继承 继承主要由下面这三种方式实现&#xff1a; 1.2.1、嵌套匿名字段 //Add…