python3+PyQt5实现使用剪贴板做复制与粘帖示例


Posted in Python onJanuary 24, 2017

本文是对《Python Qt GUI快速编程》的第10章的例子剪贴板用Python3+PyQt5进行改写,分别对文本,图片和html文本的复制与粘帖,三种做法大同小异。

#!/usr/bin/env python3
import os
import sys
from PyQt5.QtCore import (QMimeData, Qt)
from PyQt5.QtWidgets import (QApplication, QDialog, QGridLayout, QLabel,
    QPushButton)
from PyQt5.QtGui import QPixmap

class Form(QDialog):

  def __init__(self, parent=None):
    super(Form, self).__init__(parent)

    textCopyButton = QPushButton("&Copy Text")
    textPasteButton = QPushButton("Paste &Text")
    htmlCopyButton = QPushButton("C&opy HTML")
    htmlPasteButton = QPushButton("Paste &HTML")
    imageCopyButton = QPushButton("Co&py Image")
    imagePasteButton = QPushButton("Paste &Image")
    self.textLabel = QLabel("Original text")
    self.imageLabel = QLabel()
    self.imageLabel.setPixmap(QPixmap(os.path.join(
        os.path.dirname(__file__), "images/clock.png")))

    layout = QGridLayout()
    layout.addWidget(textCopyButton, 0, 0)
    layout.addWidget(imageCopyButton, 0, 1)
    layout.addWidget(htmlCopyButton, 0, 2)
    layout.addWidget(textPasteButton, 1, 0)
    layout.addWidget(imagePasteButton, 1, 1)
    layout.addWidget(htmlPasteButton, 1, 2)
    layout.addWidget(self.textLabel, 2, 0, 1, 2)
    layout.addWidget(self.imageLabel, 2, 2)
    self.setLayout(layout)

    textCopyButton.clicked.connect(self.copyText)
    textPasteButton.clicked.connect(self.pasteText)
    htmlCopyButton.clicked.connect(self.copyHtml)
    htmlPasteButton.clicked.connect(self.pasteHtml)
    imageCopyButton.clicked.connect(self.copyImage)
    imagePasteButton.clicked.connect(self.pasteImage)

    self.setWindowTitle("Clipboard")


  def copyText(self):
    clipboard = QApplication.clipboard()
    clipboard.setText("I've been clipped!")


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


  def copyImage(self):
    clipboard = QApplication.clipboard()
    clipboard.setPixmap(QPixmap(os.path.join(
        os.path.dirname(__file__), "images/gvim.png")))

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


  def copyHtml(self):
    mimeData = QMimeData()
    mimeData.setHtml("<b>Bold and <font color=red>Red</font></b>")
    clipboard = QApplication.clipboard()
    clipboard.setMimeData(mimeData)


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

if __name__ == "__main__":
  app = QApplication(sys.argv)
  form = Form()
  form.show()
  app.exec_()

运行结果:

python3+PyQt5实现使用剪贴板做复制与粘帖示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python的Django框架中inclusion_tag的使用
Jul 21 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
Feb 11 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
浅析Python数据处理
May 02 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
Python制作exe文件简单流程
Jan 24 Python
python实现转圈打印矩阵
Mar 02 Python
opencv python图像梯度实例详解
Feb 04 Python
Django models文件模型变更错误解决
May 11 Python
增大python字体的方法步骤
Jul 05 Python
详解Python中openpyxl模块基本用法
Feb 23 Python
Python+Selenium实现读取网易邮箱验证码
Mar 13 Python
Python调用C++程序的方法详解
Jan 24 #Python
python中import学习备忘笔记
Jan 24 #Python
用python实现简单EXCEL数据统计的实例
Jan 24 #Python
Python如何import文件夹下的文件(实现方法)
Jan 24 #Python
利用Python脚本实现ping百度和google的方法
Jan 24 #Python
解决python2.7用pip安装包时出现错误的问题
Jan 23 #Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 #Python
You might like
第三节 定义一个类 [3]
2006/10/09 PHP
php调用shell的方法
2014/11/05 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
使用JQUERY Tabs插件宿主IFRAMES
2010/01/01 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
JavaScript 模块化编程(笔记)
2015/04/08 Javascript
js文字横向滚动特效
2015/11/11 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
Layui table field初始化加载时进行隐藏的方法
2019/09/19 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
python简易实现任意位数的水仙花实例
2018/11/13 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
Python 实现opencv所使用的图片格式与 base64 转换
2020/01/09 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
爱心捐款倡议书
2014/04/14 职场文书
中学生评语大全
2014/04/18 职场文书
单位未婚证明范本
2014/11/25 职场文书
小学入学感言
2015/08/01 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android