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实现全局变量的两个解决方法
Jul 03 Python
Python实现子类调用父类的方法
Nov 10 Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
Python 获取div标签中的文字实例
Dec 20 Python
详解python之heapq模块及排序操作
Apr 04 Python
解决python中使用PYQT时中文乱码问题
Jun 17 Python
Python 处理文件的几种方式
Aug 23 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
Python如何重新加载模块
Jul 29 Python
详解Python中如何将数据存储为json格式的文件
Nov 18 Python
Python 文本滚动播放器的实现代码
Apr 25 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
利用PHP实现短域名互转
2013/07/05 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
PHP的mysqli_select_db()函数讲解
2019/01/23 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
简单介绍Python中的JSON模块
2015/04/08 Python
机器学习python实战之决策树
2017/11/01 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
详解python while 函数及while和for的区别
2018/09/07 Python
transform python环境快速配置方法
2018/09/27 Python
python后端接收前端回传的文件方法
2019/01/02 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
Python之字典添加元素的几种方法
2020/09/30 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
程序员岗位职责
2013/11/11 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
大学班长的职责
2014/01/27 职场文书
《三峡》教学反思
2014/03/01 职场文书
困难补助申请报告
2015/05/19 职场文书
消费者投诉书范文
2015/07/02 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书