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

PyQt5—QPushButton 功能 API 学习笔记

第二章 控件学习


QPushButton 是 PyQt5 中用于创建按钮的类,是 GUI 界面中最常用的控件之一。下面从基础到高级,逐步讲解 QPushButton 的功能和用法。

一、基础入门

首先来看一个最简单的例子:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButtonapp = QApplication(sys.argv)window = QWidget()
window.setWindowTitle('QPushButton示例')
window.setGeometry(100, 100, 300, 200)button = QPushButton('点击我', window)
button.move(100, 100)window.show()
sys.exit(app.exec_())

这个代码创建了一个简单的窗口,里面有一个按钮。关键代码解释:

  1. QPushButton('点击我', window) - 创建一个按钮,文本为 "点击我",父窗口为 window
  2. button.move(100, 100) - 设置按钮在窗口中的位置

二、按钮事件处理

按钮的核心功能是点击后触发事件,下面是一个带事件处理的例子:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabelclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle('按钮事件示例')self.setGeometry(100, 100, 300, 200)self.label = QLabel('未点击', self)self.label.move(100, 50)self.button = QPushButton('点击我', self)self.button.move(100, 100)self.button.clicked.connect(self.on_click)self.show()def on_click(self):self.label.setText('按钮被点击了!')self.label.adjustSize()if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())

这个例子中:

  1. 创建了一个继承自 QWidget 的窗口类
  2. self.button.clicked.connect(self.on_click) - 将按钮的 clicked 信号连接到 on_click 方法
  3. 当按钮被点击时,on_click 方法会被调用,更新标签文本

三、按钮样式设置

QPushButton 支持丰富的样式定制,下面是一个设置按钮样式的例子:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButtonapp = QApplication(sys.argv)window = QWidget()
window.setWindowTitle('按钮样式示例')
window.setGeometry(100, 100, 300, 200)button = QPushButton('样式按钮', window)
button.setStyleSheet("""QPushButton {background-color: #4CAF50;border: none;color: white;padding: 10px 20px;text-align: center;text-decoration: none;display: inline-block;font-size: 16px;margin: 4px 2px;cursor: pointer;border-radius: 10px;}QPushButton:hover {background-color: #45a049;}QPushButton:pressed {background-color: #3e8e41;}
""")
button.move(80, 80)window.show()
sys.exit(app.exec_())

这里使用了 Qt 的样式表 (stylesheet):

  1. 设置了按钮的背景色、边框、文字颜色等基本样式
  2. 使用:hover 和:pressed 伪状态设置了鼠标悬停和按下时的样式变化
  3. 通过 border-radius 实现了圆角效果

四、按钮状态管理

按钮有多种状态,可以通过代码控制,下面是一个示例:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabelclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle('按钮状态示例')self.setGeometry(100, 100, 300, 250)self.label = QLabel('按钮状态: 正常', self)self.label.move(80, 30)# 普通按钮self.btn1 = QPushButton('普通按钮', self)self.btn1.move(80, 70)# 可勾选按钮self.btn2 = QPushButton('可勾选按钮', self)self.btn2.setCheckable(True)self.btn2.move(80, 110)self.btn2.clicked.connect(self.on_toggle)# 禁用按钮self.btn3 = QPushButton('禁用按钮', self)self.btn3.move(80, 150)self.btn3.setEnabled(False)# 切换按钮状态的按钮
http://www.xdnf.cn/news/14814.html

相关文章:

  • Zynq7020 Linux更新启动分区文件导致文件大小为0的处理方式
  • 力扣第84题-柱状图中最大的矩形
  • Webpack中的Loader详解
  • 用户行为序列建模(篇六)-【阿里】DSIN
  • 实战篇----利用 LangChain 和 BERT 用于命名实体识别-----完整代码
  • flask使用-链接mongoDB
  • Python爬虫-爬取汽车之家全部汽车品牌及车型数据
  • ListExtension 扩展方法增加 转DataTable()方法
  • Lua现学现卖
  • DOP数据开放平台(真实线上项目)
  • 电商返利APP架构设计:如何基于Spring Cloud构建高并发佣金结算系统
  • OpenLayers 下载地图切片
  • 解决cursor无法下载插件等网络问题
  • vue-29(创建 Nuxt.js 项目)
  • 从用户到权限:解密 AWS IAM Identity Center 的授权之道
  • 给定一个没有重复元素的数组,写出生成这个数组的MaxTree的函数
  • TDengine 如何使用 MQTT 采集数据?
  • lambda、function基础/响应式编程基础
  • [论文阅读] 软件工程 | 微前端在电商领域的实践:一项案例研究的深度解析
  • NLP中的同义词替换及我踩的坑
  • 创客匠人视角:创始人 IP 打造为何成为知识变现的核心竞争力
  • 【算法深练】单调栈:有序入栈,及时删除垃圾数据
  • 鸿蒙5:组件监听和部分状态管理V2
  • 为何需要防爆平板?它究竟有何能耐?
  • 【龙泽科技】新能源汽车故障诊断仿真教学软件【吉利几何G6】
  • 学习使用dotnet-dump工具分析.net内存转储文件(2)
  • vue-28(服务器端渲染(SSR)简介及其优势)
  • 舵机在不同类型机器人中的应用
  • Python 数据分析与可视化 Day 10 - 数据合并与连接
  • Linux的top指令CPU占用率详解(白话版)——Linux进阶常用知识点