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字典几种方法总结(推荐)
Sep 11 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
Oct 20 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
Pycharm远程调试openstack的方法
Nov 21 Python
pandas DataFrame索引行列的实现
Jun 04 Python
Python中使用__new__实现单例模式并解析
Jun 25 Python
python内存管理机制原理详解
Aug 12 Python
python tkinter canvas使用实例
Nov 04 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
Python 实现日志同时输出到屏幕和文件
Feb 19 Python
python获取带有返回值的多线程
May 02 Python
pytorch实现加载保存查看checkpoint文件
Jul 15 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邮件专题
2006/10/09 PHP
Mysql的常用命令
2006/10/09 PHP
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
Javascript 陷阱 window全局对象
2008/11/26 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
小程序实现留言板
2018/11/02 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
python实现用户答题功能
2018/01/17 Python
详解python中sort排序使用
2019/03/23 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
美国社交购物市场:MassGenie
2019/02/18 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
经济信息管理专业大学生求职信
2013/09/27 职场文书
内科护士实习自我鉴定
2013/10/17 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
面试自我评价范文
2014/09/17 职场文书
党的群众路线对照检查材料范文
2014/09/24 职场文书
股份转让协议书范本
2015/01/27 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书