当前位置: 首页 > news >正文

【PyQt】11-QTextEdit、QPushButton

文章目录

  • 前言
  • 一、文本输入-QTextEdit
    • 1.1 代码
    • 1.2 运行结果
  • 二、QPushButton
    • 2.1.1 按钮上添加文本
    • 2.1.2 按键的弹跳效果
    • 2.1.3 两个信号可以绑定一个槽。
    • 2.1.4 带图标的按键
      • 运行结果
    • 2.1.5 按键不可用以及回车默认
    • 完整代码
    • 2.2 单选按键控件
      • 运行结果
    • 2.3 复选框(多选框)
      • 运行结果
    • 2.4 下拉列表按键
      • 运行结果
  • 总结


前言

1、展示文本输入框的使用。
2、几种按键的使用方法。
3、单选按键时候,状态切换的槽函数怎么写。


一、文本输入-QTextEdit

1.1 代码

'''
#Author :susocool
#Creattime:2024/2/14
#FileName:023-QtextEdit多行输入文本
#Description: '''from PyQt5.QtWidgets import *
import sysclass QTextEditDemo(QWidget):def __init__(self):super(QTextEditDemo, self).__init__()self.initUI()def initUI(self):self.setWindowTitle('多行文本输入')self.resize(300,200)self.textEdit = QTextEdit()self.buttonText = QPushButton('显示文本')self.buttonHTML = QPushButton('显示HTML')layout = QVBoxLayout()layout.addWidget(self.textEdit)layout.addWidget(self.buttonText)layout.addWidget(self.buttonHTML)self.setLayout(layout)self.buttonText.clicked.connect(self.onClick_ButtonText)self.buttonHTML.clicked.connect(self.onClick_ButtonHTML)def onClick_ButtonText(self):self.textEdit.setPlainText('HEllO WORLD,世界~') # 纯文本def onClick_ButtonHTML(self):self.textEdit.setHtml('<font color = "blue" size = 10 >HELLO WROLD</font>')if __name__ == '__main__':app = QApplication(sys.argv)ui = QTextEditDemo()ui.show()sys.exit(app.exec_())

1.2 运行结果

文本显示
在这里插入图片描述
HTML显示
在这里插入图片描述

二、QPushButton

类型

  • QAstractButton-按钮控件的基类
    它提供了一些通用的方法和信号,可以用于派生其他类型的按钮。一般情况下,你不会直接使用 QAbstractButton 类。
  • AToolButton - 工具按钮
  • QPushButton -普通的按钮
  • QRadioButton -单选按钮
  • QcheckBox -复选框

2.1.1 按钮上添加文本

有两种方法

 self.button1 = QPushButton( '按钮1' )
self.button1.setText('First Button')

两种展示结果是一样的。
在这里插入图片描述

2.1.2 按键的弹跳效果

        self.button1.setCheckable(True) # 将按钮设置为可选中状态。这意味着用户可以点击按钮以切换其选中状态。self.button1.toggle()

没按下时候
在这里插入图片描述
按下的情况
在这里插入图片描述

打印获取按下的按键

self.button1.clicked.connect(lambda: self.whichButton(self.button1))

lambda 是 Python 中的一个关键字,用于创建小而简洁的匿名函数。匿名函数是指没有具体名称的函数,通常用于只需要一次性使用的简单函数场景。

这个匿名函数的作用是在调用时,执行 self.whichButton(self.button1) 这个方法。匿名函数没有传入参数,因此它会直接调用 self.whichButton(self.button1) 方法,并将 self.button1 作为参数传递进去。

使用 lambda 创建匿名函数的好处在于,能够在不需创建独立函数的情况下,快速定义一个简单的函数功能,并在需要时直接传递和调用。
在这里插入图片描述

2.1.3 两个信号可以绑定一个槽。

在这里插入图片描述
在这里插入图片描述

2.1.4 带图标的按键

在这里插入图片描述

运行结果

在这里插入图片描述

2.1.5 按键不可用以及回车默认

在这里插入图片描述

完整代码

'''
#Author :susocool
#Creattime:2024/2/14
#FileName:024-Button
#Description: '''
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *class QPushButtonDemo(QDialog):def __init__(self):super(QPushButtonDemo, self).__init__()self.initUI()def initUI(self):self.setWindowTitle('Button')self.resize(300,300)self.button1 = QPushButton( '按钮1' )# self.button1.setText('First Button')self.button1.setCheckable(True) # 将按钮设置为可选中状态。这意味着用户可以点击按钮以切换其选中状态。self.button1.toggle()self.button2 = QPushButton('图像按钮')self.button2.setIcon(QIcon('./管理困难.png'))self.button3 = QPushButton('不可用')self.button3.setEnabled(False)self.button4 = QPushButton('&Mybutton')     # 添加热键Alt+M 即可选中self.button4.setDefault(True)   # 将按钮设置为默认按钮。默认按钮在界面中按下 Enter 键时被激活#(默认情况下,第一个添加到窗口的按钮就是默认按钮)self.button1.clicked.connect(lambda: self.whichButton(self.button1))self.button1.clicked.connect(self.buttonState)self.button2.clicked.connect(lambda:self.whichButton(self.button2))self.button4.clicked.connect(lambda:self.whichButton(self.button4))layout = QVBoxLayout()layout.addWidget(self.button1)layout.addWidget(self.button2)layout.addWidget(self.button3)layout.addWidget(self.button4)self.setLayout(layout)def whichButton(self,btn):print("被单击的按钮是<" + btn.text() + '>')def buttonState(self):if self.button1.isChecked():print('按键1被选中')else:print("按键1未被选中")if __name__ == '__main__':app = QApplication(sys.argv)ui = QPushButtonDemo()ui.show()sys.exit(app.exec_())

运行结果
在这里插入图片描述

2.2 单选按键控件

这段主要体会状态切换时候的槽函数怎么写。

'''
#Author :susocool
#Creattime:2024/2/15
#FileName:025-单选按键控件
#Description:
'''import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *class RadioButtonDemo(QWidget):def __init__(self):super(RadioButtonDemo, self).__init__()self.initUI()def initUI(self):self.setWindowTitle('可选按键')self.button1 = QRadioButton('单选按钮1')self.button1.setCheckable(True)self.button2 = QRadioButton('单选按钮2')layout = QHBoxLayout()layout.addWidget(self.button1)layout.addWidget(self.button2)self.setLayout(layout)self.button1.toggled.connect(self.buttonState)    # 状态切换self.button2.toggled.connect(self.buttonState)def buttonState(self):radioButton = self.sender()if radioButton.isChecked() == True:print('<' + radioButton.text() + '>被选中')else:print ( '<' + radioButton.text () + '>被取消选中状态')if __name__ == '__main__':app = QApplication(sys.argv)ui = RadioButtonDemo()ui.show()sys.exit(app.exec_())

运行结果

在这里插入图片描述

2.3 复选框(多选框)

'''
#Author :susocool
#Creattime:2024/2/15
#FileName:026-复选框
#Description:三种形式的复选框
'''import sys
from PyQt5.QtCore import *
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *class QCheckBoxDemo(QWidget):def __init__(self):super(QCheckBoxDemo, self).__init__()self.initUI()def initUI(self):self.setWindowTitle('复选框')self.checkBox1 = QCheckBox('复选框控件1')self.checkBox1.setChecked(True)self.checkBox2 = QCheckBox('普通复选框')self.checkBox3 = QCheckBox('半选中')self.checkBox3.setChecked(True)self.checkBox3.setCheckState(Qt.PartiallyChecked)self.checkBox1.stateChanged.connect(lambda:self.checkboxState(self.checkBox1))self.checkBox2.stateChanged.connect(lambda:self.checkboxState(self.checkBox2))self.checkBox3.stateChanged.connect(lambda:self.checkboxState(self.checkBox3))layout = QHBoxLayout()layout.addWidget(self.checkBox1)layout.addWidget(self.checkBox2)layout.addWidget(self.checkBox3)self.setLayout(layout)def checkboxState(self,cb):# checkState()返回值是一个整数,而在打印的时候我们希望以字符串的形式展现,因此注意格式!!!checkState1 = self.checkBox1.text() + ',isChecked=' + str(self.checkBox1.isChecked()) + ',checkState = ' + str(self.checkBox1.checkState()) + ' \n 'checkState2 = self.checkBox2.text() + ',isChecked=' + str(self.checkBox2.isChecked()) + ',checkState = ' + str(self.checkBox2.checkState()) + ' \n 'checkState3 = self.checkBox3.text() + ',isChecked=' + str(self.checkBox3.isChecked()) + ',checkState = ' + str(self.checkBox3.checkState()) + ' \n 'print(checkState1 + checkState2 + checkState3)if __name__ == '__main__':app = QApplication(sys.argv)ui = QCheckBoxDemo()ui.show()sys.exit(app.exec_())

运行结果

未选中状态
在这里插入图片描述
选择复选框1
在这里插入图片描述
在这里插入图片描述
普通复选框
在这里插入图片描述

半选中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
简单总结下来就是复选框有两种状态,而半选中框有三种状态。

2.4 下拉列表按键

'''
#Author :susocool
#Creattime:2024/2/15
#FileName:027-下拉列表按键
#Description:
'''
import sys
from PyQt5.QtWidgets import *class QComboBoxDemo(QWidget):def __init__(self):super(QComboBoxDemo, self).__init__()self.initUI()def initUI(self):self.setWindowTitle('下拉列表')self.resize(300,100)self.label = QLabel('请选择编程语言')self.combo = QComboBox()self.combo.addItem('C++')self.combo.addItem('Python')self.combo.addItems(['C语言','C#','Java'])    # 注意这里是s# 当前索引变化self.combo.currentIndexChanged.connect(self.selectionChange)layout = QVBoxLayout()layout.addWidget(self.combo)layout.addWidget(self.label)self.setLayout(layout)# currentIndexChanged默认传递两个参数,因此槽设置两个参数def selectionChange(self,i):self.label.setText(self.combo.currentText())self.label.adjustSize() # 自适应调整大小for count in range(self.combo.count()):print('item' + str(count) + '='+self.combo.itemText(count))print('current index',i,'selection changed',self.combo.currentText())if __name__ == '__main__':app = QApplication(sys.argv)ui = QComboBoxDemo()ui.show()sys.exit(app.exec_())

运行结果

在这里插入图片描述
在这里插入图片描述


总结

这篇文章依旧没有总结

相关文章:

【PyQt】11-QTextEdit、QPushButton

文章目录 前言一、文本输入-QTextEdit1.1 代码1.2 运行结果 二、QPushButton2.1.1 按钮上添加文本2.1.2 按键的弹跳效果2.1.3 两个信号可以绑定一个槽。2.1.4 带图标的按键运行结果 2.1.5 按键不可用以及回车默认完整代码2.2 单选按键控件运行结果 2.3 复选框&#xff08;多选框…...

初识webpack(二)解析resolve、插件plugins、dev-server

目录 (一)webpack的解析(resolve) 1.resovle.alias 2.resolve.extensions 3.resolve.mainFiles (二) plugin插件 1.CleanWebpackPlugin 2.HtmlWebpackPlugin 3.DefinePlugin (三)webpack-dev-server 1.开启本地服务器 2.HMR模块热替换 3.devServer的更多配置项 (…...

什么是自编码器Auto-Encoder?

来源&#xff1a;https://www.bilibili.com/video/BV1Vx411j78H/?spm_id_from333.1007.0.0&vd_sourcef66cebc7ed6819c67fca9b4fa3785d39 为什么要压缩呢&#xff1f; 让神经网络直接从上千万个神经元中学习是一件很吃力的事情&#xff0c;因此通过压缩提取出原图片中最具代…...

openGauss学习笔记-219 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-网络

文章目录 openGauss学习笔记-219 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-网络219.1 查看网络状况 openGauss学习笔记-219 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-网络 获取openGauss节点的CPU、内存、I/O和网络资源使用情况&#xff0c;确认这些资源…...

SAP PP学习笔记- 豆知识01 - 怎么查询既存品目

SAP系统当中已经有哪些品目要怎么查询呢&#xff1f; 1&#xff0c;MM60 品目一览 这里可以输入Plant&#xff0c;然后可以查询该工厂的所有品目。 2&#xff0c;SE16 > MARA MARA 品目一般Data&#xff0c;存放的是品目基本信息。 如果要查询该品目属于哪个Plant&#x…...

相机的机身马达有什么用?

新手疑问&#xff1a; 为什么我的尼康D3200相机明明拥有拍视频能力&#xff0c;但是拍摄视频时却不能对焦 科普时间 那是因为你的相机缺少机身马达&#xff0c;并且你所使用的镜头也没有马达!机身马达是用于给镜头提供对焦动力的装置。它的作用是使相机具备自动对焦功能。如…...

拿捏c语言指针(上)

目录 前言 ​编辑 指针 内存与地址 计算机常见单位 理解编址 取地址&#xff0c;指针变量&#xff0c;解引用 取地址 指针变量 解引用 指针变量大小 指针类型的作用 char*解引用后 指针-整数 应用 void*指针 const修饰指针变量 const修饰普通变量 const修饰指…...

JVM指令手册

栈和局部变量操作将常量压入栈的指令 aconst_null 将null对象引用压入栈 iconst_m1 将int类型常量-1压入栈 iconst_0 将int类型常量0压入栈 iconst_1 将int类型常量1压入操作数栈 iconst_2 将int类型常量2压入栈 iconst_3 将int类型常量3压入栈 iconst_4 将int类型常量4…...

Linux之多线程

目录 一、进程与线程 1.1 进程的概念 1.2 线程的概念 1.3 线程的优点 1.4 线程的缺点 1.5 线程异常 1.6 线程用途 二、线程控制 2.1 POSIX线程库 2.2 创建一个新的线程 2.3 线程ID及进程地址空间布局 2.4 线程终止 2.5 线程等待 2.6 线程分离 一、进程与线程 在…...

TestNG invocationCount属性

有时我们会遇到这样的问题&#xff0c;比如如何多次运行一个测试用例&#xff1f;invocationCount是这个问题的答案。在这篇文章中&#xff0c;我们将讨论在TestNG中与Test annotation一起使用的invocationCount属性。 这个属性有什么作用&#xff0c;或者调用计数有什么用&am…...

关于maven项目中无法通过邮件服务器发送邮件的补充解决方案

1、问题及解决方法 我的一篇文章中提到使用代码发送电子邮件&#xff0c;但是maven项目中无法执行成功&#xff0c;现在我找到了解决办法&#xff0c;只要引入依赖时同时引入下面两个依赖就行了&#xff0c;我无法找到原因主要是使用单元测试方法运行&#xff0c;它居然不报错&…...

树形dp 笔记

树的最长路径 给定一棵树&#xff0c;树中包含 n 个结点&#xff08;编号1~n&#xff09;和 n−1 条无向边&#xff0c;每条边都有一个权值。 现在请你找到树中的一条最长路径。 换句话说&#xff0c;要找到一条路径&#xff0c;使得使得路径两端的点的距离最远。 注意&…...

2024-02-08 Unity 编辑器开发之编辑器拓展1 —— 自定义菜单栏

文章目录 1 特殊文件夹 Editor2 在 Unity 菜单栏中添加自定义页签3 在 Hierarchy 窗口中添加自定义页签4 在 Project 窗口中添加自定义页签5 在菜单栏的 Component 菜单添加脚本6 在 Inspector 为脚本右键添加菜单7 加入快捷键8 小结 1 特殊文件夹 Editor ​ Editor 文件夹是 …...

typescript中的Omit排除类型及Pick取想要的属性

Omit 的使用:排除类型 type OmitUser {name: string,age: number,sex:string } type newOmit Omit<OmitUser, sex>// 定义一个对象并将其类型设置为 newOmit const example: newOmit {name: "John",age: 30 };console.log( Omit 的使用:排除类型 , example…...

MATLAB计算极限和微积分

一.函数与极限 计算极限&#xff1a;lim(3*x^2/(2x1))&#xff0c;x分别趋于0和1&#xff0c;代码如下&#xff1a; syms x; limit(3*x*x/(2*x1),x,0) limit(3*x*x/(2*x1),x,1) 结果分别为0和1&#xff1a; 1.计算双侧极限 计算极限&#xff1a;lim(3*x^2/(2x1))&#xff0…...

在数组中插入元素

问题&#xff1a;假设有一个数组{1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5}&#xff0c;如果我们要在3之后插入一个数&#xff08;520&#xff09;&#xff0c;这该怎么办呢&#xff1f; 思路&#xff1a;要想在以元素3之后插入一个元素&#xff0c;我们先要做…...

【计算机网络】物理层|传输介质|物理层设备|宽带接入技术

目录 一、思维导图 二、传输介质 1.传输介质——导引型 2.传输介质——非导引型​编辑 三、物理层设备 1.物理层设备&#xff1a;中继器&集线器 2.宽带接入技术&#xff08;有线&#xff09; ​编辑 四、趁热打铁☞习题训练 五、物理层总思维导图 推荐 前些天发现…...

TCP和UDP面试题提问

TOC TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;是两种计算机网络通信协议&#xff0c;它们在网络通信中起着不同的作用。 TCP TCP 是面向连接的协议&#xff0c;它在数据传输之前需要在发送端和接收端建立一条连接。TCP 提供可靠…...

网安常用的三个攻击方式

1.渗透测试执行标准&#xff08;PTES&#xff09; 渗透测试执行标准由7个部分组成&#xff0c;包括前期交互、情报收集、威胁建模、漏洞分析、渗透利用、后渗透、撰写报告。在中国&#xff0c;渗透测试必须经过授权&#xff0c;否则就违背了网络安全法。前期交互主要指开展渗透…...

C++面向对象程序设计-北京大学-郭炜【课程笔记(二)】

C面向对象程序设计-北京大学-郭炜【课程笔记&#xff08;二&#xff09;】 1、结构化程序设计结构化程序设计的不足 2、面向对象的程序设计2.1、面向对象的程序设计2.2、从客观事物抽象出类2.3、对象的内存分配2.4、对象之间的运算2.5、使用类的成员变量和成员函数用法1&#x…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...