PyQt5新手教程(七万字)

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QPushButton, QLabel, QInputDialog, QColorDialog, QFontDialog, QFileDialog, QProgressDialog, QMessageBox
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QColorclass MainWindow(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle("Dialogs Example")self.setGeometry(100, 100, 400, 300)layout = QVBoxLayout()# 输入对话框按钮input_btn = QPushButton("Input Dialog")input_btn.clicked.connect(self.show_input_dialog)layout.addWidget(input_btn)# 颜色对话框按钮color_btn = QPushButton("Color Dialog")color_btn.clicked.connect(self.show_color_dialog)layout.addWidget(color_btn)# 字体对话框按钮font_btn = QPushButton("Font Dialog")font_btn.clicked.connect(self.show_font_dialog)layout.addWidget(font_btn)# 打开文件对话框按钮open_file_btn = QPushButton("Open File Dialog")open_file_btn.clicked.connect(self.show_file_dialog)layout.addWidget(open_file_btn)# 进度对话框按钮progress_btn = QPushButton("Progress Dialog")progress_btn.clicked.connect(self.show_progress_dialog)layout.addWidget(progress_btn)# 消息框按钮message_btn = QPushButton("Message Box")message_btn.clicked.connect(self.show_message_box)layout.addWidget(message_btn)# 标签用于显示结果self.result_label = QLabel()layout.addWidget(self.result_label)central_widget = QWidget()central_widget.setLayout(layout)self.setCentralWidget(central_widget)def show_input_dialog(self):text, ok = QInputDialog.getText(self, "Input Dialog", "Enter something:")if ok and text:self.result_label.setText(f"Input: {text}")else:self.result_label.setText("Input Dialog Canceled")def show_color_dialog(self):color = QColorDialog.getColor(QColor(255, 0, 0), self, "Color Dialog")if color.isValid():self.result_label.setStyleSheet(f"background-color: {color.name()}")self.result_label.setText(f"Selected Color: {color.name()}")def show_font_dialog(self):font, ok = QFontDialog.getFont(self)if ok:self.result_label.setFont(font)self.result_label.setText(f"Selected Font: {font.family()}, {font.pointSize()}pt")def show_file_dialog(self):file_name, _ = QFileDialog.getOpenFileName(self, "Open File Dialog", "", "All Files (*);;Text Files (*.txt)")if file_name:self.result_label.setText(f"Selected File: {file_name}")def show_progress_dialog(self):progress_dialog = QProgressDialog("Processing...", "Cancel", 0, 100, self)progress_dialog.setWindowModality(Qt.WindowModal)progress_dialog.setWindowTitle("Progress Dialog")for i in range(100):progress_dialog.setValue(i)if progress_dialog.wasCanceled():breakself.result_label.setText("Progress Dialog Completed")def show_message_box(self):msg_box = QMessageBox()msg_box.setIcon(QMessageBox.Information)msg_box.setWindowTitle("Message Box")msg_box.setText("This is an information message box.")msg_box.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)result = msg_box.exec_()if result == QMessageBox.Ok:self.result_label.setText("Message Box: Ok button clicked")else:self.result_label.setText("Message Box: Cancel button clicked")if __name__ == "__main__":app = QApplication(sys.argv)window = MainWindow()window.show()sys.exit(app.exec_())

在这里插入图片描述

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

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

相关文章

P2678 [NOIP 2015 提高组] 跳石头

P2678 [NOIP 2015 提高组] 跳石头 判断条件该怎么写

小麦矩阵系统:一键批量发,多账号同步不掉链

随着互联网的发展和社交平台的普及,企业和个人用户越来越依赖社交媒体平台来进行信息传播、品牌宣传以及市场推广。在这个信息高速流动的时代,如何更高效地管理多个社交平台的账号,并保持信息的同步与流畅传播,成为了许多企业面临…

JavaScript经典面试题二(函数和作用域)

目录 一、闭包,使用场景 1.闭包的定义 2.闭包的实现原理 3.闭包的应用场景 (1)数据封装与私有变量 (2)函数柯里化 (3)事件处理与回调 (4)模块化开发 4.注意事项 …

Linux防火墙iptables

目录 一,Iptables概述 二,iptables组成 1,表 2,链 3,链表对应关系 4,数据包过滤的匹配流程 5,规则匹配策略 三,iptables防火墙配置 1,iptables命令 2&#xff…

[优选算法专题二——NO.16最小覆盖子串]

题目链接 LeetCode最小覆盖子串 题目描述 代码编写 、关键注意点 仅统计目标相关字符:通过 hash1.count(in) 判断字符是否在 t 中,避免无关字符(如 s 中的 D、E)干扰统计,提升效率。count 的更新时机:仅当…

考研408计算机网络近年第34题真题解析(2021-2024.34)

(2021.34)此题已明确为差分曼彻斯特编码,通常第一个时间间隙可能不太好判断,因为0,或1可以变化,但差分曼彻斯特编码的其它位置可以判断,图中黄色数字的时间间隙位置,开始位置和前面一…

微信小程序开发教程(八)

目录:1.全局配置-tabBar2.小程序的页面配置3.数据请求-GET和POST请求4.数据请求-request请求的注意事项1.全局配置-tabBar注意tabar页面必须放到Page头部位置2.小程序的页面配置3.数据请求-GET和POST请求4.数据请求-request请求的注意事项

日语学习-日语知识点小记-构建基础-JLPT-N3阶段(29):文法運用第9回3+(考え方11)

日语学习-日语知识点小记-构建基础-JLPT-N3阶段(31):文法運用第9回31、前言(1)情况说明(2)工程师的信仰2、知识点1ー 復習2ー 单词训练3、单词(1)日语单词  …

小鹏汽车在 VLA(视觉 - 语言 - 动作)算法模型框架细节与原理

小鹏汽车的 VLA(视觉 - 语言 - 动作)算法模型框架是其端到端自动驾驶系统的核心,融合了多模态感知、语言推理与动作生成能力。以下是其技术细节与原理的深度解析: 一、整体架构:混合式端到端设计 小鹏 VLA 采用云端基座…

京东商品详情 API 全解析:合规对接与 B2C 场景实战指南

在 B2C 电商运营中,商品详情数据是支撑店铺管理、库存调控、营销决策的核心基础。京东商品详情 API 作为官方合规的数据获取通道,不仅能稳定返回商品标题、价格、库存等关键信息,还针对 B2C 场景新增了预售锁库、次日达标识等特色字段。本文从…

【Visual Studio 2017 和 2019下载】

Visual Studio 2017 和 2019下载VS2017下载地址:VS2019下载地址:VS2017下载地址: Visual Studio 2017 Community 链接 Visual Studio 2017 Enterprise 链接 VS2019下载地址: Visual Studio 2019 Community 链接 Visual Studio …

Python 轻松实现替换或修改 PDF 文字

在日常开发或文档处理过程中,经常会遇到需要对 PDF 文档中的文字进行修改的场景。例如更新合同条款、修正报表数据,或者批量替换文件中的特定内容。由于 PDF 格式以固定排版为特点,直接修改文字不像 Word 那样直观,因此需要借助专…

CI/CD流水线优化实战:从30分钟到5分钟的效能革命

关键词:CI/CD优化、GitHub Actions、Jenkins、自动化部署、流水线加速 一、引言:CI/CD流水线为何需要优化? 在现代软件开发中,CI/CD(持续集成/持续交付)已成为DevOps实践的核心环节。然而,许多团队的流水线存在效率低下问题,​​平均构建时间超过30分钟​​,严重制约…

神经网络矩阵的点乘与叉乘概述

点乘点乘:两个矩阵对应位置元素相乘(逐元素级 element - wise)实现方式:可通过 * 和 torch.mul(x, y) 函数实现(含广播机制)模型符号:一个圆圈中间加一个实心点叉乘叉乘:传统线性代数…

PHP学习(第三天)

网站访问流程 一、静态网站访问流程(如 index.html)1. 流程是怎么样的? 静态网站的页面内容固定,不需要服务器做额外计算,直接把文件返回给浏览器。访问流程大致如下:用户输入网址或点击链接 用户在 个人设…

【办公自动化】如何使用Python脚本自动化处理音频?

在日常办公和内容创作中,音频处理是一项常见需求。无论是处理会议录音、制作播客、编辑音乐背景,还是进行语音识别,Python都能帮助我们高效地完成这些任务。本文将介绍如何使用Python实现音频处理自动化,包括格式转换、音频拼接、…

OpenHarmony AVSession深度解析(二):从本地会话到分布式跨设备协同的完整生命周期管理

1. 系统概述 AVSession是OpenHarmony多媒体框架中的核心组件,负责管理音视频会话的生命周期、状态同步和跨设备协同。它提供了统一的接口供应用创建会话、设置元数据、控制播放状态,并支持分布式场景下的会话迁移。 2. 架构设计 2.1 核心类结构 #mermaid-svg-QwwujBwB3Wo6…

架构思维:在复杂系统中寻找秩序的底层逻辑

在商业世界中,架构师常被视为神秘的存在。懂架构不一定是大师,但,大师一定善于架构,善于拨开迷雾,看透全局。他们穿梭于代码与流程之间,用看不见的线条编织着数字世界的经纬。 架构天然的使命就是面对复杂…

国产凝思debian系Linux离线安装rabbitmq教程步骤

系统环境 由于国内访问debian的apt源太慢了,花了很多很多时间后,反而超时报错。所以采用离线安装方式。 uname -a Linux bogon 4.19.0-11-linx-security-amd64 #1 SMP Linx 4.19.146-1linx10 (2023-05-30) x86_64 GNU/Linux下载安装包 在有网络的电脑…

开发避坑指南(48):Java Stream 判断List元素的属性是否包含指定的值

需求 Java Stream 判断List元素的属性是否包含指定的值该怎么实现? 代码实现 直接上代码 public class OrderInfo {private BigDecimal fee;private String orderStatus; }public class ListTest2 {public static void main(String[] args) {OrderInfo orderInfo n…