【PyQt】16-剪切板的使用

文章目录

  • 前言
  • 一、代码
    • 疑惑
    • 快捷键
  • 二、现象
    • 2.1 复制粘贴文本
      • 复制
      • 粘贴
    • 2.2 复制粘贴图片
      • 复制
      • 粘贴
    • 2.3 复制粘贴网页
  • 总结


前言

1、剪切板的使用
2、pycharm的编译快捷键
3、类的属性和普通变量的关系
4、pyqt应该养成的编程习惯-体现在代码里了,自己看看。


一、代码

'''
#Author :susocool
#Creattime:2024/3/3
#FileName:039-剪切板
#Description: 

'''
import sys,math
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class ClipBoard(QDialog):
    def __init__(self):
        super().__init__()
        self.initUI()

    # 养成习惯UI单独写一个函数
    # 包含界面设计和槽函数
    def initUI(self):
        self.setWindowTitle('剪切板演示')

        Button_textCopy = QPushButton('复制文本')
        Button_textPaste = QPushButton('粘贴文本')
        Button_htmlCopy = QPushButton('复制网页')
        Button_htmlPaste = QPushButton('粘贴网页')
        Button_imgCopy = QPushButton('复制图像')
        Button_imgPaste = QPushButton('粘贴图像')

        self.Labeltext = QLabel('默认文本')
        self.Labelimg = QLabel()
        self.Labelimg.setPixmap(QPixmap('./管理困难.png'))

        layout = QGridLayout()
        layout.addWidget(Button_textCopy,0,0)   # 行,列
        layout.addWidget(Button_imgCopy,0,1)
        layout.addWidget(Button_htmlCopy,0,2)
        layout.addWidget(Button_textPaste,1,0)
        layout.addWidget(Button_imgPaste,1,1)
        layout.addWidget(Button_htmlPaste,1,2)

        layout.addWidget(self.Labeltext,2,0,1,2)
        layout.addWidget(self.Labelimg,2,2)

        self.setLayout(layout)

        Button_textCopy.clicked.connect(self.copyText)
        Button_textPaste.clicked.connect(self.pasteText)
        Button_imgCopy.clicked.connect(self.copyImg)
        Button_imgPaste.clicked.connect(self.pasteImage)
        Button_htmlCopy.clicked.connect(self.copyHtml)
        Button_htmlPaste.clicked.connect(self.pasteHtml)

    def copyText(self):
        clipboard = QApplication.clipboard()
        clipboard.setText('Hello Word')

    def pasteText(self):
        clipboard = QApplication.clipboard()
        self.Labeltext.setText(clipboard.text())

    def copyImg(self):
        clipboard = QApplication.clipboard()
        clipboard.setPixmap(QPixmap('./管理困难.png'))

    def pasteImage(self):
        clipboard = QApplication.clipboard()
        self.Labelimg.setPixmap(clipboard.pixmap())

    # 需要目标编译器支持复制,我这里复制不成功可能是不支持,无所谓,主打思路会
    def copyHtml(self):
        mineDate = QMimeData()
        mineDate.setHtml('<b>Bold and <font color = red>Red</font></b>')
        clipboard = QApplication.clipboard()
        clipboard.setMimeData(mineDate) # 这里记住不是date,个人命名导致的错误

    def pasteHtml(self):
        clipboard = QApplication.clipboard()
        mimeDate = clipboard.mimeData()
        if mimeDate.hasHtml():
            self.Labeltext.setText(mimeDate.html())



if __name__ == '__main__':
    app = QApplication(sys.argv)

    main = ClipBoard()
    main.show()

    sys.exit(app.exec_())

疑惑

为什么Button上面不设置self。

在这段代码中,按钮(Button)是作为局部变量初始化的,没有将其赋值给类(self)的属性。通常,如果需要在类中的其他方法中访问这些按钮,应该将它们作为类的属性来进行初始化。

在将按钮设置为类属性和局部变量之间有几点区别:

1、作用域范围:

  • 类属性:
    将按钮设置为类属性时,可以在类的任何方法中访问这些按钮,因为它们属于类的一部分。
  • 局部变量:
    在方法内部初始化的按钮是局部变量,只能在当前方法内部访问,无法在其他方法中直接使用。

2、生存周期:

  • 类属性:
    类属性的生命周期与类对象相同,只要类对象存在,这些按钮也会存在。
  • 局部变量:
    局部变量的生命周期仅限于当前方法的执行过程,在方法执行完毕后会被销毁。

3、访问方式:

  • 类属性:
    可以通过 self.Button_name 的方式在类的任何方法中访问这些按钮。
  • 局部变量:
    只能在当前方法内部直接访问这些按钮。

综上所述,将按钮设置为类属性能够提供更广泛的访问范围和更长的生命周期,使其在类的不同方法中都能方便地使用,而不仅仅局限于单个方法内部。

虽然我不是第一次疑惑这个点了QWQ

快捷键

在PyCharm中shift+F10 是 运行
单击F11 标记书签

二、现象

2.1 复制粘贴文本

复制

点击复制文本
在这里插入图片描述
在别的地方粘贴
在这里插入图片描述

粘贴

在这里插入图片描述
将已经复制的文本在此区域内展示

2.2 复制粘贴图片

复制

同理可得在这里插入图片描述

粘贴

在这里插入图片描述

2.3 复制粘贴网页

需要目标编译器支持复制,我这里复制不成功可能是不支持,无所谓,主打思路会


总结

这篇文章依旧没有总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/436390.html

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

相关文章

CTP-API开发系列之四:接口对接准备

CTP-API开发系列之四&#xff1a;接口对接准备 CTP-API开发系列之四&#xff1a;接口对接准备CTP-API文件清单CTP-API通用规则命名规则Spi与Api CTP-API通讯模式开发语言选择 CTP-API开发系列之四&#xff1a;接口对接准备 CTP-API文件清单 文件名说明ThostFtdcTraderApi.h交…

护眼台灯推荐,护眼台灯怎么选?口碑公认的5个品牌推荐

现在儿童青少年的近视率越来越高&#xff0c;所以儿童护眼台灯也是受到了越来越多的关注。护眼台灯凭借能提供舒适自然的照明&#xff0c;起到预防近视的作用&#xff0c;成为了许多家长为孩子选择的必备灯具&#xff01;不过市场上始终存在护眼台灯质量差、不达到标准等各种负…

新闻资讯|基于微信小程序的经济新闻资讯系统设计与实现(源码+数据库+文档)

新闻资讯小程序目录 目录 基于微信小程序的经济新闻资讯系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、用户信息管理 2 短视频信息管理 3、新闻信息管理 4、论坛信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设…

实战-Sealos一键部署k8s集群-2024.3.7(测试成功)

目录 [toc] 原文链接 实战-Sealos一键部署k8s集群-2024.3.7(测试成功) | 彦 推荐文章 我的开源项目&#xff1a; 开源项目 | 彦 实验环境 centos7.6 1810,5.4.270-1.el7.elrepo.x86_64sealos v5.0.0-beta4k8s v1.28.7 &#xff08;当前时间&#xff1a;2024年3月7日 k8s最新版…

前端语义化标签及实例

常用的语义化标签的以下几种&#xff1a; header、nav、article、section、aside、footer、abbr、dfn、address、del、ins、pre、meter、progress <header> 定义文章的页眉信息 <header><h1>我的网站标题</h1><nav><ul><li><a …

从零开始学习Diffusion Models: Sharon Zhou

How Diffusion Models Work 本文是 https://www.deeplearning.ai/short-courses/how-diffusion-models-work/ 这门课程的学习笔记。 文章目录 How Diffusion Models WorkWhat you’ll learn in this course [1] Intuition[2] SamplingSetting Things UpSamplingDemonstrate i…

Optional 详解

Optional 详解 1、Optional 介绍2、创建 Optional 对象3、Optional 常用方法1. 判断值是否存在 — isPresent()2. 非空表达式 — ifPresent()3. 设置(获取)默认值 — orElse()、orElseGet()4. 获取值 — get()5. 过滤值 — filter()6. 转换值 — map() 作为一名 Java 程序员&am…

ISP基础概述

原文来自ISP 和摄像头基本知识 本文主要介绍ISP&#xff0c;以供读者能够理解该技术的定义、原理、应用。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;计算机杂记 &#x1f380;CSDN主页 发狂的小花 &#x1f3…

【短时交通流量预测】基于小波神经网络WNN

课题名称&#xff1a;基于小波神经网络的短时交通流量预测 版本时间&#xff1a;2023-04-27 代码获取方式&#xff1a;QQ&#xff1a;491052175 或者 私聊博主获取 模型简介&#xff1a; 城市交通路网中交通路段上某时刻的交通流量与本路段前几个时段的交通流量有关&#x…

登录校验-过滤器-拦截器

会话技术 会话&#xff1a;用户打开浏览器&#xff0c;访问Wb服务器的资源&#xff0c;会话建立&#xff0c;直到有一方断开连接&#xff0c;会话结束。在一次会话中可以包含多次请求和响应。 会话跟踪&#xff1a;一种维护浏览器状态的方法&#xff0c;服务器需要识别多次请求…

upload-Labs靶场“11-15”关通关教程

君衍. 一、第十一关 %00截断GET上传1、源码分析2、%00截断GET上传 二、第十二关 %00截断POST上传1、源码分析2、%00截断POST上传 三、第十三关 文件头检测绕过1、源码分析2、文件头检测绕过 四、第十四关 图片检测绕过上传1、源码分析2、图片马绕过上传 五、第十五关 图片检测绕…

腾讯云和阿里云哪个好?云服务器价格表对比

2024年阿里云服务器和腾讯云服务器价格战已经打响&#xff0c;阿里云服务器优惠61元一年起&#xff0c;腾讯云服务器62元一年&#xff0c;2核2G3M、2核4G、4核8G、8核16G、16核32G、16核64G等配置价格对比&#xff0c;阿腾云atengyun.com整理阿里云和腾讯云服务器详细配置价格表…

C# LINQ运算符

LINQ运算符 1. 概述1.1 集合->集合1.1.1 筛选运算符1.1.2 映射运算符1.1.3 连接运算符1.1.4 排序运算符1.1.5 分组运算符1.1.6 集合运算符1.1.7 转换方法:Import1.1.8 转换方法:Export 1.2 集合->单个元素或标量值1.2.1 元素运算符1.2.2 聚合方法1.2.3 数量词 1.3 空->…

1910_野火FreeRTOS教程阅读笔记_prvStartFirstTask函数

1910_野火FreeRTOS教程阅读笔记_prvStartFirstTask函数 全部学习汇总&#xff1a; g_FreeRTOS: FreeRTOS学习笔记 这是教程中的一个函数&#xff0c;通过汇编来实现的。注释部分以及结合后面的讲解部分&#xff0c;可能还是有一点点细节的地方让初学者疑惑。我结合我自己的理解…

龙格-库塔法

概要 微分方程&#xff1a;含参数、未知函数、未知函数的导数&#xff08;或者微分&#xff09;的方程数值求解&#xff1a;用若干离散点计算 近似值 来代替准确值分类&#xff1a;单步法、多步法&#xff1b;隐式法、显示法欧拉法 (欧拉折线法)&#xff0c;也是一阶龙格-库塔…

【数据结构】图解二叉搜索树的新增、搜索、删除

一、概念 二叉搜索树&#xff08;Binary Search Tree&#xff0c;简称BST&#xff09;也称为二叉查找树或二叉排序树&#xff0c;是一种具有特殊性质的二叉树数据结构。 定义和性质&#xff1a; 二叉搜索树中的每个节点包含一个键值&#xff0c;习惯上我们说左子树上所有节点…

乔琼:高性能会议传声器的产品优化设计| 演讲嘉宾公布

一、智能家居与会议系统 智能家居与会议系统分论坛将于3月28日同期举办&#xff01; 智能会议系统它通过先进的技术手段&#xff0c;提高了会议效率&#xff0c;降低了沟通成本&#xff0c;提升了参会者的会议体验。对于现代企业、政府机构和学术界是不可或缺的。在这里&#x…

部署运维 防火墙,进程 常用命令

防火墙: 1. 查看是否安装了firewalld sudo systemctl status firewalld 查看防火墙状态或者sudo systemctl is-active firewalld 查看防火墙是否是开启状态 2. 开放6379port sudo firewall-cmd --add-port6379/tcp --permanent 刷新防火墙 sudo firewall-cmd --reload 3…

MinIO Client(mc)基本使用

一、Linux安装 1、下载最近的mc 命令&#xff0c;并保存到当前用户的bin目录下&#xff0c;这样可以直接执行&#xff0c;不用修改path curl -sL https://dl.minio.org.cn/client/mc/release/linux-amd64/mc -o /usr/bin/mc chmod x /usr/bin/mc二、配置使用 1、查看mc已经…

【洛谷 P8748】[蓝桥杯 2021 省 B] 时间显示 题解(数学+模运算+输入输出)

[蓝桥杯 2021 省 B] 时间显示 题目描述 小蓝要和朋友合作开发一个时间显示的网站。在服务器上&#xff0c;朋友已经获取了当前的时间&#xff0c;用一个整数表示&#xff0c;值为从 1970 年 1 月 1 日 00:00:00 到当前时刻经过的毫秒数。 现在&#xff0c;小蓝要在客户端显示…